Javascript Regex未通过测试字符串
Javascript Regex not passing test string
我正在使用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
相关文章:
- Mocha js测试字符串不相等时不显示diff
- 测试字符串中的多个单词
- 在Javascript中截断一个字符串,混淆了最后两个测试字符串
- 测试字符串在 javascript 中是否具有时区
- 使用正则表达式测试字符串中的特定ASCII字符
- 根据Javascript中的RegEx模式测试字符串
- 如何在javascript中测试字符串是否包含带正则表达式的数字
- 如何测试字符串是否有效日期是否使用时刻
- 使用 for 循环中的函数测试字符串时,我一直陷入无限循环
- 正则表达式,用于测试字符串是否包含超过 X 个单词
- 用于测试字符串是否具有数字字符的条件
- 针对 JavaScript 中的多个正则表达式测试字符串
- 如何测试字符串是否按顺序包含多个定义的单词
- 任何语言中小写的Javascript测试字符串
- JavaScript正则表达式测试字符串是否包含特定单词(带变量)
- 在Javascript中测试字符串模式匹配
- 如何在Javascript中测试字符串是否只有空格
- 测试字符串中出现反斜杠时,JavaScript RegEx匹配错误
- 测试字符串是否以.html|.html|.json结尾
- Javascript Regex未通过测试字符串