※社内専用

正規表現

検品ツールで電話番号のところがひっかからないとのご連絡。
確認してみる。

以下のフォーマットの電話番号がひっかからない

0765‐22‐0172

検品ツールのソースは以下。
js

let reg = /0\d{1,4}[-(]{1,2}\d{1,4}[-)]{1,2}\d+/g;
let telArr = $("body").text().match(reg);

問題なさそう…
けど私は正規表現についてなんとなく知識なので
どこか違うのかもしれぬと思って一個一個どういう意味だったか
確認する。

\d 半角数字(0~9)

{1,4} 4桁までの数字(1~4桁の数字)

[-(] 指定された文字のどれかに一致

{1,2}  一個前の文字がn回以上m回以下の繰り返しに一致

+ 一個前の文字が一回以上の繰り返しに一致

g 最初の1個だけでなく、文字列の最後まで検索を繰り返す

/0\d{1,4}[-(]{1,2}\d{1,4}[-)]{1,2}\d+/g

を言葉にすると
0から始まって、半角数字1~4桁の数字がきて、-か、( の文字が1個か2個あって
半角数字1~4桁の数字がきて、-か、( の文字が1個か2個あって
半角数字が1個以上あって、一致する分ずーと検索する
という感じ。

あってるじゃん…

 

 エディタで0765‐22‐0172を正規表現検索にかける

下の04-2948-1511はひっかかるけど対象の電話番号はひっかからない

 

 条件を短めにしてみる。

0\d{1,4}[-(]{1,2}

この時点でもだめ

 

 条件をもっと短めにしてみる。

0\d{1,4}

ひっかかった!

ハイフンのなにか問題があるのかな…
atomのエディタって半角、全角が見た目わかりづらいですよね
調べてみる一応
http://www.luft.co.jp/cgi/str_counter.php

 

 対象の電話番号のハイフンが全角だった…

 

atomで全角、半角のみわけつくパッケージでいいのありましたら
教えてください。