0

我正在使用 javascript 正则表达式来测试字符串。它应该使文本字符串失败,但以某种方式通过它。任何线索,这段代码有什么问题?

<script>
var format = "^[a-zA-Z\.\-' ]*[a-zA-Z]+[a-zA-Z\.\-' ]*";
var testingValue = "FN306716";
var regex = new RegExp(format);
if (regex.test(testingValue) == false) { 
alert('validation failed');
}
else {
alert('validation passed');
}
</script> 
4

2 回答 2

1

只是猜测您$在正则表达式末尾缺少测试完整字符串。

var regex = /^[a-zA-Z\.\-' ]*[a-zA-Z]+[a-zA-Z\.\-' ]$/;

使用此正则表达式,您的输入不会通过,因为它包含数字。

编辑:我已将其更新为使用评论中指出的正则表达式文字。

于 2013-06-28T07:53:50.017 回答
0

你错过了$(输入锚的结尾):

正则表达式应该是:

var format = "^[a-zA-Z.' -]*[a-zA-Z]+[a-zA-Z.' -]*$";

还要记住,-在字符类中的第一个和最后一个位置使用时不需要转义,并且在字符类中.也不需要转义。

现场演示:http ://www.rubular.com/r/Q26cgQVJTm

于 2013-06-28T07:54:39.753 回答