// リテラル構文
let url_p_1 = /http(s)?:\/\/([\\w-]+\\.)+(\/[\w-.\/?%&=]*)?/gi
// コンストラクタ構文
let url_p_2 = new RegExp('http(s)?://([\\w-]+\\.)+[\\w-]+(\\w-./?%&=)*)?', "gi")
全体マッチ判定
RegExp.test({str})
戻り値は, bool
let zipcode_ptn = /[0-9]{3}(-)?[0-9]{4}/
const my_zipcode = 123-4567
if (zipcode_ptn(my_zipcode)) {
console.log(`${my_zipcode} is match.`)
}
正規表現パターンのグループ
() : サブマッチ文字列にアクセスできる
// JS
let re = /(0\d{1,3})-(\d{2,4})-(\d{3,4})/
let str = "オフィスの電話番号は, 000-111-3333です."
let result str.match(re)
// 市外局番 : result[1] : 000
// 市内局番 : result[2] : 111
// 加入者番号: result[3] : 3333
名前付きキャプチャグループ
()に名前をつける
?<名前>でのちにresult.groups.名前でアクセスできる
let re = /(?<area>0\d{1,3})-(?<city>\d{2,4})-(?<local>\d{3,4})/
let str = "オフィスの電話番号は, 000-111-3333です."
let result str.match(re)
// 市外局番 : result.groups.area 000
// 市内局番 : result.groups.city 111
// 加入者番号 : result.groups.local 3333
// e.g. URL文字列をanchorタグ<a>に置換する
// JS
let re = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/gi
let str = "サポートサイトは, http://www.example.com/です。"
str.replaceAll(re, '<a href="$&">$&</a>')
String.splitメソッド
正規表現で文字列を分割する
let re = /[\/\.\-]/g
"2022/12/04".split(re) // ["2022", "12", "04"]
"2022-12-04".split(re) // ["2022", "12", "04"]
"2022.12.04".split(re) // ["2022", "12", "04"]