如何验证输入字段,确保Javascript中的特定字符串模式

时间:2014-11-11 20:16:20

标签: javascript validation

尝试验证用户是否输入了以字母开头的名称,长度至少为8个字符,并且其中至少包含一个数字。请参阅以下代码: -

我能够开始工作的前两个条件,它验证是否有一个数字。我试图通过其中的数字验证单独运行一个函数,但我似乎无法让它工作。这是我最近的尝试,它的工作,任何帮助将不胜感激,请记住我是一年级学生:)

function nameVerify() {

    var char1;
    var char2;
    var index;
    var NL = "\n";
    var valid = false;


    char1 = useNam.substr(0, 1);
    char1 = char1.toUpperCase();
    char2 = useNam.substr(1);

    for (index = 1; index <=useNam.length; index++){        
    while (!valid) {

    if ((char1 <"A" || char1 >"Z") || (useNam.length <8) && (char2 >=0 || char2 <=9)){
        alert("alert 1");
        useNam = prompt("prompt 2");
        char1 = useNam.substr(0, 1);
        char1 = char1.toUpperCase();
        char2 = useNam.substr(1);           


        }

    else {
        valid = true;
        alert("Congragulations, you entered it correctly");
    }
    }
    }}      

var useNam;

useNam = prompt("prompt 1");
result = nameVerify(useNam);

2 个答案:

答案 0 :(得分:2)

/**
 * @param {string} str name to test
 * @return {boolean} true if str is valid
 */
function isValidName(str) {
  return /^[a-zA-Z][a-zA-Z0-9]{7,}$/.test(str) && /\d/.test(str)
}

/^[a-zA-Z][a-zA-Z0-9]{7,}$/测试它以字母开头,长度至少为8个字符,所有字符都是字母或数字。 /\d/测试它至少包含1个数字。有关特殊字符和此处描述的x{n,}语法,请参阅MDN's RegExp documentation以获取参考。如果您也允许下划线,则可以使用/^[a-zA-Z]\w{7,}$/进行第一次测试。

答案 1 :(得分:0)

试试这个

valid = myString.match(/\d/).length > 0

这是一个正则表达式,它将返回它匹配的第一个数字,否则返回一个空数组