以下是我的代码..
/(?!\*)/.test("test*test")
结果仍然是真的。
我想验证字符串,如果字符串中有*,则返回false。
代码出了什么问题?
答案 0 :(得分:4)
你的正则表达式返回true,因为它匹配起始位置。您刚刚说过的测试"是否有一个位置没有跟*
?"字面上任何字符串都匹配 - 即使"*"
匹配,因为在*
之后有一个位置没有跟随(其他)*
。
如果要测试字符串是否不包含*
,最简单的解决方案是:
"test*test".indexOf("*") < 0 // true if no * in string
使用正则表达式会是这样的:
/^[^*]*$/.test("test*test")
但那还有更多的工作。
答案 1 :(得分:-1)
只需测试*
的存在并取消输出
var string="123*456";
console.log( !(/\*/.test(string)) );
false
var string="12*34*56";
console.log( !(/\*/.test(string)) );
false
var string="123456";
console.log( !(/\*/.test(string)) );
true