Javascript输入验证

时间:2011-04-29 15:08:21

标签: javascript html

我如何确保名称中除了撇号之外没有特殊字符......例如: - 我可以允许O'Connor而不是John“Doe”?请帮忙。

2 个答案:

答案 0 :(得分:2)

使用正则表达式,如果您只想要使用撇号的英文字符^[A-Za-z\']*$,您可以扩展它以检查很多东西。正则表达式是一个非常强大的工具,我建议阅读它们(它们几乎存在于每种编程语言中)

var validRegex = /^[A-Za-z\']*$/; 
if(myString.search(validRegex)==-1) 
     alert("Error");

编辑:添加了示例。

答案 1 :(得分:1)

这是一个工作示例,说明如何使用正则表达式检查有效名称,并给出您所规定的条件:

<!DOCTYPE html>
<html>
<head>
    <title>Check for a good name</title>
    <script>
    var goodName = /^[A-Za-z'\s]+$/;

    function checkName(name){
        if (goodName.test(name)) {
            alert("Name is great!");
        } else {
            alert("Name contains illegal characters");
        }
    }      
    </script>
</head>
<body>
    <form onsubmit="return false;">
        <input type="text" name="name" size="20">
        <input type="button" value="Check" 
                             onclick="checkName(this.form.name.value);">
    </form>
</body>
</html>

/^[A-Za-z'\s]+$/正则表达式允许使用大写英文,小写英文,撇号和空格。 (它与Afiefh提出的类似,添加了允许空格的\,+而不是*来防止空白名称通过测试。)

正如大卫多尔沃德上面所说,如果你真的用它来测试名字,你可以考虑通过改变第6行来放宽规则以适应国际名称:

var goodName = /^([ \u00c0-\u01ffa-zA-Z'\-])+$/;

这允许unicode characters,撇号和连字符。