0

国際電話番号の検証を作成する方法を示すブログ投稿を見つけました。提供されるコードは次のとおりです。

jQuery.validator.addMethod('intlphone', function(value) { return (value.match(/^((\+)?[1-9]{1,2})?([-\s\.])?((\(\d{1,4}\))|\d{1,4})(([-\s\.])?[0-9]{1,12}){1,2}(\s*(ext|x)\s*\.?:?\s*([0-9]+))?$/)); }, 'Please enter a valid phone number');

以前はうまくいったと思いますが、何かが変更されました-おそらくjQueryの新しいバージョン-そして私はこのエラーを受け取ります:

Uncaught SyntaxError: Invalid regular expression: /^((+)?[1-9]{1,2})?([-s.])?(((d{1,4}))|d{1,4})(([-s.])?[0-9]{1,12}){1,2}(s*(ext|x)s*.?:?s*([0-9]+))?$/: Nothing to repeat 

使用しているアイテムを使用してJSBinを作成しましたが、エラーを取り除くことができません。

jQuery Validateで国際電話番号を検証するために古いJavaScriptを修正するにはどうすればよいですか?

ps:以前のバージョンのjQueryでこれを実行しようとしましたが、まだエラーが発生していると思います。何が変わったのかわかりません。

これを使用することになりました:

jQuery.validator.addMethod('intlphone', function(value) { return (value.match(/^((\+)?[1-9]{1,2})?([\-\s\.])?((\(\d{1,4}\))|\d{1,4})(([\-\s\.])?[0-9]{1,12}){1,2}(\s*(ext|x)\s*\.?:?\s*([0-9]+))?$/)); }, 'Please enter a valid phone number');
4

1 に答える 1

0

ここで述べたように電話番号検証のための包括的な正規表現

数字以外の文字を削除し、数字と拡張子のみに一致する正規表現を作成する方がはるかに簡単です。

これを関数の先頭に追加して、x以外のすべての数字以外を削除します: value.replace("[^\d+x]", "").match...。

于 2012-09-21T00:22:23.310 に答える