2011-07-28 12 views
1

私はこの自家製関数を使ってテキストフィールドを検証していますが、なんらかの理由でスペースを "受け入れません"。私は\スペースを入力すると、テキストボックスの赤に変わり、なぜあなたは私を伝えることができJavascript Regex space with space

function validateText(controlid, minlength, maxlength, required) { 
    var control = document.getElementById(controlid); 
    if (!required && control.value.length == 0) control.style.backgroundColor = "White"; 
    else { 
     var regex = new RegExp("^[a-zA-Z0-9\(\)\.\s_,:/-]{" + minlength + "," + maxlength + "}$", "g"); 
     if (!regex.test(control.value)) 
      control.style.backgroundColor = "#FFDDDD"; 
     else 
      control.style.backgroundColor = "White"; 
    } 
} 

...私のクラスによ持っているので、私は、それが奇妙見つけますか?ありがとう:)

+0

この場合の最小長さと最大長さはどのくらいですか –

+0

@Jesper - デモを作成して正常に動作しました。いくつかの助けを願っています〜[http://jsfiddle.net/5ryx8/](http://jsfiddle.net/5ryx8/) – Monday

答えて

3

あなたがクラスに\sを入れようとしているからです。クラス(例:[])の中で\sは単純に間違ってエスケープされた "s"です。リテラルスペースを使用するか、^([...]|\s){を実行してください。

+0

はい、スペースで\ sを置き換える場合、それは動作します。あなたはjsFiddle:http://jsfiddle.net/jfriend00/Ne6zC/でここで動作することがわかります。 – jfriend00

+0

ありがとうございます。今はうまくいきます – Jesper