检查是否写入了特定的字符并触发错误

时间:2010-07-12 09:57:04

标签: javascript regex validation

我试图通过JS弄清楚是否在textarea中输入了无效的字符

我想只允许这个字符:

A-Za-z0-9 !#%&*()+-=,.?"';:/

如果输入非法字符,我想检索坏字符,并触发错误,即:

文字无效,写了不好的字符:

1) _
2) @
etc...

谢谢!

1 个答案:

答案 0 :(得分:2)

我不确定你什么时候想做这个检查,但是这里有一个检查功能。它会提醒第一个无效的角色。

function checkValue(input) {
    var result = /[^a-z0-9 !#%&*()+\-=,.?"';:\/]/i.exec(input.value);
    if (result) {
        alert("Character '" + result[0] + "' is not allowed");
        return false;
    } else {
        return true;
    }
}

如果您想要所有匹配的无效字符,则可以使用以下内容:

function checkValue(input) {
    var isValid = true, result, matchedChars = [];
    while( (result = /[^a-z0-9 !#%&*()+\-=,.?"';:\/]/ig.exec(input.value)) ) {
        matchedChars.push("'" + result[0] + "'");
        isValid = false;
    }
    if (!isValid) {
        alert("Characters " + matchedChars.join(", ") + " are not allowed");
    }
    return isValid;
}