如何检测星座" *"在正则表达式?

时间:2016-04-12 11:36:42

标签: javascript regex

以下是我的代码..

/(?!\*)/.test("test*test")

结果仍然是真的。

我想验证字符串,如果字符串中有*,则返回false。

代码出了什么问题?

2 个答案:

答案 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