我有一个HTML表单,我编写了一个JavaScript / jQuery脚本,用于测试该字段是否与正则表达式匹配。但是,发生的情况是正则表达式测试程序不起作用并匹配我输入的任何字符串。这是我的代码:
HTML
<input type="text" name="name" id="name" required>
<span id="namecheck"></span>
JS
$("#name").keyup(function () {
if (/^[A-Za-z \-]{0,35}/.test($(this).val())) {
$("#namecheck").html("<i style=\"color:green\">Match!</i>");
} else {
$("#namecheck").html("<i style=\"color:darkred\">No match!</i>");
}
});
由于我是JS的新手(最近开始学习它),我可能会犯一些非常愚蠢的错误,但任何帮助都会受到赞赏。
答案 0 :(得分:1)
您可能希望在正则表达式的末尾加$
。美元符号表示它是字符串的结尾,因此如果您将其添加到正则表达式,那么它只会匹配长度为0到35的字符串:
/^[A-Za-z \-]{0,35}$/