-4

JavaScriptで正規表現パターンを実行して、数字と次の記号のみを含む文字列を許可したいと思います:()+とスペース。5〜16文字の長さ。

注意:文字列内の文字の順序は重要ではありません。

これに適したパターンは何ですか?

ありがとう

4

2 に答える 2

4

これはどう:

/^[0-9 ()+]{5,16}$/

自分で構築するのはとても簡単です。) まず、厳密な制限を課すため、文字列全体をチェックする必要があるため、正規表現は にラップする必要があります/^...$/

第二に、特定の文字だけが必要な場合は、文字クラスを使用する必要があります。それらすべてを [...] 形式に書き留めます。あなたの場合、ショートカットすることができます:/^[0123456789 ()+]$/ちょうどに置き換えてください/^[0-9 ()+]$/

最後に、{$min, $max} 形式でいくつかの量的制限を述べます。あなたの場合は{5,16}. これをこれまでに得たものに混ぜてください - そしてほら!あなたはタスクを解決しました。)

于 2012-04-27T19:53:28.293 に答える
1
if( myText.match(/\A[0-9 ()+]{5,16}\Z/) ) {
    // Yay!
}

アンカー文字がないことは正しく指摘されていましたが、^$ を使用すると文字列のにのみ一致するため、「823479898237\n328742987」は長すぎても一致します。

于 2012-04-27T19:53:54.667 に答える