1

私は現在この正規表現を使用しています

"/^([0-9\(\)\/\+ \-]*)$/",

これは問題ありませんが、問題は、この行を自動的に生成するマスキング スクリプトも使用していることです。

(___) ___-____

そして、それは私の検証を台無しにします。使用からのこのタイプの入力のみを検証できる正規表現コードはどれですか

(999) 999-9999

また、入力時にユーザーからの「空白」入力フィールドを受け入れません。上記の入力のみを受け入れる限り、任意の長さで問題ありません。

4

3 に答える 3

2

これはうまくいくはずです:

^\(\d{3}\)\s{0,1}\d{3}-\d{3}$

この正規表現を破る:

\(\d{3}\)括弧内の 3 つの数字のみに一致します。

\s{0,1}0 または 1 個のスペースのみに一致します。

\d{3}-\d{3}は、3 つの数字の後に「-」が続き、その後に他の 3 つの数字が続くものと一致します。

于 2012-10-14T17:49:21.167 に答える
0

書式設定と検証は 2 つの非常に異なるものです。それらを混ぜようとすると失敗します。

そうは言っても、検証を実行する前に、文字列からすべての書式設定文字を削除してから、コンテンツを検証する必要があります。

// remove everything that isn't a digit
var strippedNumber = value.replace(/\D/g, '');

if (strippedNumber.length === 10) {
    // valid phone number
}
于 2012-10-14T17:55:38.200 に答える
0

まず、正規表現について尋ねるときは、どの言語またはツールを使用しているかを常に説明する必要があります。これは、使用できる機能とバックスラッシュで引用する必要がある文字に影響するためです。質問のタグに基づいて、JavaScript について質問していると仮定します。

長さは何でもいいと言う。これは、連続する数字の各シーケンスには、1 から無限までの任意の数の数字を含めることができることを意味すると解釈します。正確に 1 つのスペースと正確に 1 つのダッシュがあると仮定します。それに基づいて、あなたのREは次のとおりです。

/^\(\d+\) \d+-\d+$/

多くの場合、数字列の長さを制限したい場合は、次のように言います。

/^\(\d{3,4}\) \d{3}-\d{1,10}$/

(3 桁または 4 桁、ちょうど 3 桁、1 桁から 10 桁)。

(...)文字列全体をキャプチャする場合は少し冗長なキャプチャ括弧を省略しました^(....)$

JavaScript 正規表現構文の簡潔な要約を次に示します: http://www.regextester.com/jssyntax.html

于 2012-10-14T18:00:51.617 に答える