投稿日:2017/06/15
検品ツールで電話番号のところがひっかからないとのご連絡。
確認してみる。
以下のフォーマットの電話番号がひっかからない
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で全角、半角のみわけつくパッケージでいいのありましたら
教えてください。