2016-09-09 12 views
0

フォームを送信する前にテキストボックスにいくつかの値を入力する必要があるという要件に取り組んでいます。以下の正規表現は正常に動作していますが、 "testing"と "dev"以外の文字列を許可しています。重要なことは、敏感.ITは「DEV」、「DEV」を、許可する必要があり、それはケースを無視すべきである「DEV」など、あなたが行きたい場所...大文字と小文字を区別するString Javaスクリプトを無視する正規表現

pattern="(?i)^(?:testing|dev|)$" 
+0

は、あなたが "テスト" と "DEV" 以外の許可された文字列の例を与えることができますか? – Janar

+0

私の知る限り、JSはこれらの修飾子をサポートしていません。 'pattern =/^(?:testing | dev |)$/i;' – ClasG

+0

'.toLowerCase()'のようなものを使ってみませんか? – ventaquil

答えて

3

/iフラグはあなたを取得する必要があります。

pattern = text.match(/^(?:testing|dev|)$/i); 

text.match(pattern); 

Regexr:http://regexr.com/3e6nd

+0

引用符を削除すると、それは文字列なので、すべてのシンボルはエスケープされます(フラグは文字になります)。そして、あなたは正規表現で '^ ... $'を失った: 'text.match(/ :(テスト:dev |)$/i)' – Thomas

+0

ありがとう@トーマス! –

+0

@Kiranこのコードでは、** Development **という単語は一致し、許可されてはいけません。 –

0

このコードは、アレイ内の単語のいずれかのために最初に一致して配列を返すであろう。単語の開発またはのテストは、単語境界アサーション\bを使用しているため一致しません。

コード:

var userInput = 'Development thetesting devs Dev testING test testIng', 
 
    result = userInput.match(/\b(testing|dev)\b/i); 
 

 
console.log(result && result[0]);

関連する問題