Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 regex定义语句中捕获的组_Javascript_Regex - Fatal编程技术网

Javascript regex定义语句中捕获的组

Javascript regex定义语句中捕获的组,javascript,regex,Javascript,Regex,如果标题有点模棱两可,很抱歉 我的HTML中有2个输入字段 一个字段采用正则表达式,一个字段采用句子,一个字段采用规则,最后一个字段显示基于规则应用于该句子的正则表达式的结果 例如:- 1) regex -> "(\d+)\.(\d{3})" 2) sentence -> "23.667" 3) rule -> "I have got $1 and $2" 4) Result fields should be " I have got 23 and 667 ". 没关系,我做

如果标题有点模棱两可,很抱歉

我的HTML中有2个输入字段

一个字段采用正则表达式,一个字段采用句子,一个字段采用规则,最后一个字段显示基于规则应用于该句子的正则表达式的结果

例如:-

1) regex -> "(\d+)\.(\d{3})"
2) sentence -> "23.667"
3) rule -> "I have got $1 and $2"
4) Result fields should be " I have got 23 and 667 ".
没关系,我做到了,现在我可以看到结果了

但是,假设规则是“我有1美元和4美元”

这是一个错误,因为我们在正则表达式中有2个捕获的组,我试图显示第4个捕获的组。我成功地做了这样一个正则表达式。但是如果我有
“我有$1和$$4”
,这不是一个错误,因为在这种情况下我应该显示
“我有23和$4”

所以我尝试做一个正则表达式,如果它读取一个“$”+大于正则表达式中捕获的组的数字,它会抛出一个错误,但是如果我们有双“$”,它不会抛出错误

因此,在我的验证器中,我有一些类似于“假设我在正则表达式中最多可以捕获9个组”

例如,我只想让我的正则表达式检测我们是否有$2,但不检测$2


有什么提示吗?

为什么你说
$4
是一个错误尝试使用不同的javascript引擎给
$4
我知道这不是javascript中的错误,只是我正在开发的应用程序我想显示错误css。对我来说,重要的是当我看到$$4时跳过,我无法编写正则表达式来跳过双$$,我的正则表达式捕获$“$4”我不想要它。可能类似于
(?:^[^$])
,因为javascript引擎中缺少lookbehind,所以无法检测到我所指的单个$
(?:^[^$])\$

new RegExp("[^\\$]\\$["+groups+"-9]","gi")
return (rule.match(myReg) || []).length>groups;