2

特殊文字を許可しない正規表現の例をたくさん見てきました。少なくとも1つの特殊文字が必要なものが必要です。

私はC#正規表現を見ています

var regexItem = new Regex("^[a-zA-Z0-9 ]*$");

これをJavaScriptで使用するように変換できますか?キャラクターをエスケープする必要がありますか?

私がこれまでにこれを構築した例に基づいて:

var regex = "^[a-zA-Z0-9 ]*$";

//Must have one special character
if (regex.exec(resetPassword)) {
    isValid = false;
    $('#vsResetPassword').append('Password must contain at least 1 special character.');
}

誰かが私のエラーを特定するか、より効率的な道を案内してくれますか?私が現在得ているエラーは、正規表現に「exec」メソッドがないことです

4

3 に答える 3

3

javascriptでは、regexは次のようにフォーマットされます。

/^[a-zA-Z0-9 ]*$/

引用符はなく、代わりに先頭と末尾にスラッシュを使用することに注意してください。

于 2013-02-15T21:32:59.100 に答える
3

あなたの問題はそれ"^[a-zA-Z0-9 ]*$"が文字列であり、正規表現が必要なことです:

var regex = /^[a-zA-Z0-9 ]*$/;                 // one way
var regex = new RegExp("^[a-zA-Z0-9 ]*$");     // another way

[詳細情報]

それ以外は、コードは正常に見えます。

于 2013-02-15T21:33:13.873 に答える
1

javascriptでは、2つの方法で正規表現オブジェクトを作成できます。

1)オブジェクトでコンストラクターメソッドを使用できますRegExp(使用していたものとは異なるスペルに注意してください)。

var regexItem = new RegExp("^[a-zA-Z0-9 ]*$");

2)言語に組み込まれているリテラル構文を使用できます。

var regexItem = /^[a-zA-Z0-9 ]*$/;

2番目の利点は、スラッシュをエスケープするだけでよく、引用符について心配する必要がないことです。最初の利点は、さまざまな部分からプログラムで文字列を作成し、それをRegExpコンストラクターに渡すことができることです。


さらに、正規表現のオプションのフラグは、次の2つの形式で渡されます。

var regexItem = new RegExp("^[A-Z0-9 ]*$", "i");
var regexItem = /^[A-Z0-9 ]*$/i;

javascriptでは/regex/、文字列またはフラグを動的に作成しない限り、パーサーに組み込まれているユーザーメソッドの方が一般的な規則のようです。

于 2013-02-15T21:35:37.800 に答える