Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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
在JavaScript中,空正则表达式模式是否定义了行为?_Javascript_Regex - Fatal编程技术网

在JavaScript中,空正则表达式模式是否定义了行为?

在JavaScript中,空正则表达式模式是否定义了行为?,javascript,regex,Javascript,Regex,从我的测试来看,它似乎与一切都匹配。这是定义的行为吗?/(?:)/匹配“nothing”,它匹配所有内容。一切都没有意义。嘿嘿。 是的,我希望如此。这并不能直接回答这个问题,但以下是规范对空正则表达式的说明: 从 分隔符的值可以是空字符串、空正则表达式,或者可以匹配空字符串的正则表达式 来自 注意正则表达式文字不能为空;字符//不表示空的正则表达式文字,而是开始一行注释。要指定空正则表达式,请使用:/(?:)/ 因此,假设它是.split()中分隔符的可接受值,我猜它是定义的行为,是对每个字符进

从我的测试来看,它似乎与一切都匹配。这是定义的行为吗?

/(?:)/
匹配“nothing”,它匹配所有内容。一切都没有意义。嘿嘿。

是的,我希望如此。

这并不能直接回答这个问题,但以下是规范对空正则表达式的说明:

分隔符的值可以是空字符串、空正则表达式,或者可以匹配空字符串的正则表达式

来自

注意正则表达式文字不能为空;字符//不表示空的正则表达式文字,而是开始一行注释。要指定空正则表达式,请使用:
/(?:)/

因此,假设它是
.split()
中分隔符的可接受值,我猜它是定义的行为,是对每个字符进行分割的一种方式

var pattern = /(?:)/

@米妮:那不是真的。相反的问题出现了,并引起了很多关注。我可以想象一个系统,用户需要提供一个正则表达式字符串来匹配“某物”,他的代码将该正则表达式封装成一个
(?:…)
,然后对其进行评估。其实不久前有人问过这个案子,;他们让人们在运行时提供正则表达式。@SLaks:相反的问题是什么?一个不匹配的正则表达式。我正在找它。@SLaks:你是说
/^$/
?谢谢!这似乎是合理定义的,因为模式在不同的上下文中匹配不同的字符串是很奇怪的
"fjeij;als#%^&é.\n isoij\t;oi`1=+-]\r".split(/(?:)/);

["f", "j", "e", "i", "j", ";", "a", "l", "s", "#", "%", "^", "&", "é", ".", "
", " ", "i", "s", "o", "i", "j", "  ", ";", "o", "i", "`", "1", "=", "+", "-", "]", "
"]