Regex javascript中正则表达式的问题
我在使用正则表达式时遇到了一个问题,这可能与我的正则表达式有关,但我需要一些帮助 我需要匹配所有包含“D”的字符串 我的正则表达式:Regex javascript中正则表达式的问题,regex,Regex,我在使用正则表达式时遇到了一个问题,这可能与我的正则表达式有关,但我需要一些帮助 我需要匹配所有包含“D”的字符串 我的正则表达式: /^.+D.+|(:?^|\s)D$/gi 它只适用于1和2,并且应该适用于1、2、3、4和5。不使用正则表达式,只需使用includes函数即可 var string=“aaaaaa-dqqqq”, substring=“D”; if(字符串包含(子字符串)){ console.log(“包含”) }否则{ console.log(“不包含”) }在您的例子
/^.+D.+|(:?^|\s)D$/gi
它只适用于1和2,并且应该适用于1、2、3、4和5。不使用正则表达式,只需使用
includes
函数即可
var string=“aaaaaa-dqqqq”,
substring=“D”;
if(字符串包含(子字符串)){
console.log(“包含”)
}否则{
console.log(“不包含”)
}
在您的例子中,问题在于+
运算符,它实际上是一次和无限次之间的匹配
,因此,如果字母“D”在字符串中或字符串末尾,它将不起作用。使用asterix尝试此正则表达式:^.*D.*$
,因为它定义为零次和无限次之间的匹配
下面的正则表达式应该适合您
.*D.*
如果您只需要测试字符串是否包含
D
字符,那么它就是/D/
var测试=[
“D”,
“AAAAA DQQQQ”,
“DSSS”,
“D4564646”,
“1321313D2312”,
“PPPPP RRRR”
]
tests.forEach(str=>console.log(/D/.test(str))
可能吗?或者[^D]*D[\s\s]*
。谢谢你,它可以与*
一起使用。但是,似乎你可以只使用indexOf
或includes
,这是一种更自然的方法来检查JavaScript中的输入字符串中是否存在字符。*D.
效率低下,并且会阻塞多行输入。不要使用它。^.*D.*$
效率低下,会阻塞多行输入。不要使用它。
.*D.*