Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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,在某些情况下,\1可以工作,而在某些情况下,$1可以在在线正则表达式生成器中工作 这两种方法在每个javascript引擎中都有效吗?在javascript中只有一种方法有效,如果反向引用在正则表达式(\n)或替换值($n)中,则不同 见: [在正则表达式中]其中n是一个正整数,[\n指]与正则表达式中的n括号匹配的最后一个子串的反向引用(左括号计数) 例如,/apple(,)\sorange\1/在“apple,orange,cherry,peach”中匹配“apple,orange” 模式

在某些情况下,
\1
可以工作,而在某些情况下,
$1
可以在在线正则表达式生成器中工作


这两种方法在每个javascript引擎中都有效吗?

在javascript中只有一种方法有效,如果反向引用在正则表达式(
\n
)或替换值(
$n
)中,则不同

见:

[在正则表达式中]其中
n
是一个正整数,[
\n
指]与正则表达式中的
n
括号匹配的最后一个子串的反向引用(左括号计数)

例如,
/apple(,)\sorange\1/
在“apple,orange,cherry,peach”中匹配“apple,orange”

模式中的
\1
\2
与字符串的最后两个单词匹配。请注意,
\1、\2、\n
用于正则表达式的匹配部分。在正则表达式的替换部分,必须使用语法
$1、$2、$n
,例如:
'bar foo'。替换(/(…)(…)/,'2$1')


这种方式在JavaScript中是正确的;不同的正则表达式可能工作方式不同,但这与如上所述的JavaScript代码无关。

反向引用不能在内部使用。类似于
(a)[\1b]
的正则表达式中的
\1
要么是错误,要么是不必要的转义文字1。事实上,这是一个很好的例子

最好是在家里解释一下