-1

私は正規表現を持っています

function checkNum(form) {
    var regex = "/^\d+/";
    if (!form.value.match(regex)) {
        alert('Please Enter value again');
        form.value = "";
    }
}

しかし、それは機能していません。

この正規表現 /^\d+$/ をこの Web サイトhttp://www.regular-expressions.info/javascriptexample.htmlに入力しましたが、この Web サイトでも機能しないようです。私はこの表現が正しいと確信しています

4

2 に答える 2

3

正規表現リテラルは引用符/^\d+/ なしです。

function checkNum(form) {
    var regex = /^\d+$/; //Pure digits from start to end
    if (!form.value.match(regex)) {
        alert('Please Enter value again');
        form.value = "";
    }
}

デモhttp://jsfiddle.net/KvuaM/


文字列 "/^\d+/"を に渡すと、暗黙的な変換と無効なエスケープ.match()のために、 に相当する正規表現が得られます。/\/^d+\//"\d"

new RegExp("/^\d+/").source
//"/^d+/"
于 2013-04-12T07:38:02.550 に答える
0

文字列にスラッシュがあり、リテラルとして解釈されます。文字列からそれらを削除するか、正規表現 "^\d+" または /^\d+/ を作成するために使用します。

于 2013-04-12T07:38:48.020 に答える