Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex javascript中正则表达式的问题_Regex - Fatal编程技术网

Regex javascript中正则表达式的问题

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”的字符串

我的正则表达式:

/^.+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.*