1

フォームのフィールドの最初の2文字がアルファベット(米国)で、残りの8文字が数字であることを確認するためのJavaScriptコードを作成しようとしています。

合計は10でなければならず、これらのいずれかが満たされない場合は、アラートボックスをスローする必要があります。

現在、数字をチェックしていますが、同じフィールドでアルファベットと数字のチェックを組み合わせる方法がわかりません。

これが数値をチェックするための私のコードです。

私を助けてください!sid私のフィールド名です。

// only allow numbers to be entered
var checkOK = "0123456789";
var checkStr = document.forms[0].sid.value;
var allValid = true;
var allNum = "";

for (i = 0; i < checkStr.length; i++)
{
    ch = checkStr.charAt(i);
    for (j = 0; j < checkOK.length; j++)
        if (ch == checkOK.charAt(j))
            break;

    if (j == checkOK.length)
    {
        allValid = false;
        break;
        if (ch != ",")
            allNum += ch;
    }
    if (!allValid)
    {
        alert("Please enter only 8 numeric characters in the \"sid\" field.");
        return (false);
    }
}    
4

4 に答える 4

5

このチェックは、単一の正規表現で簡単に実行できます。

   /^[a-zA-Z]{2}\d{8}$/

/^ 文字列の先頭に一致

[a-zA-Z]{2} 正確に 2 文字の英字に一致

\d{8} 正確に 8 桁に一致

$/ 文字列の末尾に一致

次のように使用します。

 /^[a-zA-Z]{2}\d{8}$/.test (str)   // Returns true or false
于 2012-10-10T09:41:57.437 に答える
0

正規表現を使用できます。jsfiddle

var regExp = /[a-z]{2}[0-9]{8}/i;

var text = 'ab12345678'; 
if(text .replace(/[a-z]{2}[0-9]{8}/i, "").length > 0){
    alert("Please enter only 8 numeric characters in the \"sid\" field.");
    return (false);
} 
于 2012-10-10T09:43:21.720 に答える
0

単純な正規表現、2 文字 + 8 桁をチェック

var checkStr = document.forms[0].sid.value;
if (checkStr.match(/\b[A-z]{2}[0-9]{8}\b/) === null) {
    alert("Please enter only 8 numeric characters in the \"sid\" field.");
    return (false);
}
于 2012-10-10T09:44:17.050 に答える
0

/^([a-zA-Z]{2}\d{8})$/;2 文字をチェックしてから、小数点以下 8 桁をチェックする必要があります。

于 2012-10-10T09:44:23.383 に答える