1

次の形式の電話番号を有効にしようとしていますregex。しかし、特定の条件では失敗します。

電話番号:

2323232
0112323232
011-2323232
+91-9898989898
98989898998

regex私は上記の数字のためにこれを書きました:

^[+]?(\d{2,4}-)?(\d{7,11})

ここでテストしました。

私は次のコードセグメントで使用しました:

var phonePattern = /^[+]?(\d{2,4}-)?(\d{7,11})/;
if(!(phonePattern.test(formData.phone))){
    $('#errorList').append('<li>Invalid Phone Number</li>');
    error = 1;
}

正規表現は、必要な電話番号に対しては正常に機能しますが、に対してもtrueを返しますformData.phone = '011-2323232asdasd'。私は初めてでregexあり、での使用法ですjavascript。どうすればそれを機能させることができますか?ご意見をお聞かせください。

4

5 に答える 5

1

両端にアンカーを配置する必要があります( のよう^<a-regex-goes-here>$に、そうしないと、試合後にゴミができてしまいます.

于 2013-02-22T11:51:35.833 に答える
1

$正規表現の最後に追加します:^[+]?(\d{2,4}-)?(\d{7,11})$

これは「テキスト/行の終わり」を意味するため、正規表現には文字列の終わりまでの数字のみが必要です。

于 2013-02-22T11:51:16.100 に答える
0

この正規表現を試してください。これ/^((\+91)?-?[0\+\(]*\d{2,3}[-\s\)]*\.?\d{3,4}[-\s]*\.?[0-9]{4})$/は、すべてのタイプの有効な電話番号で機能します。

以下の条件に対してtrueを返します。

1. Just 10 digits
2. +00 0000 0000
3. +1 000 000 000
4. (3 digits)<space>(3 digits)<space>4 digits
5. (3 digits) - 3 digits - 4 digits
6. +91-9898989898

そしてもっとたくさん..

于 2013-02-22T12:41:59.237 に答える
0

私はあなたが$最後に逃したと思います。使用する:

^[+]?(\d{2,4}-)?(\d{7,11})$
于 2013-02-22T16:39:23.430 に答える
0

コードに「($) で終わる」演算子を追加する必要があります。

/^[+]?(\d{2,4}-)?(\d{7,11})$/

この http://www.regular-expressions.info/javascript.htmlをご覧ください。

于 2013-02-22T11:53:47.157 に答える