Javascript Regex未通过测试字符串

Javascript Regex not passing test string

本文关键字:测试 字符串 Regex Javascript      更新时间:2023-09-26

我正在使用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> 

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

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

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

编辑:我已经更新了它,使用regex文字,正如在评论中指出的那样。

您缺少$(输入锚点的末尾):

Regex应为:

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

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

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