将php正则表达式转换为JavaScript

时间:2011-03-02 21:04:18

标签: php javascript regex replace

我正在尝试将以下php表达式转换为JavaScript,但我遇到了一件事。

preg_replace('/'.preg_quote($keyword).'/i', "<span>$0</span>", $string)

这里发生的是我可以使用正确的“大小写字母”重用找到的子字符串。很难解释我的意思,但让我举个例子:

如果用户输入瑞典语,则此字符串全部为小写字母。但结果是同一个词写成了瑞典语,所以我希望它保持原样。

可以通过使用匹配的值$ 0在php中执行此操作,您可以在php表达式中看到。

在JavaScript中我到目前为止所拥有的是:

var highlighted_sub = location_sub_name[i].replace(regexp_highlight,"<span class='loc_keyword'>" + location_keyword + "</span>");

这会将原始结果替换为来自用户的输入,因此当用户输入时,我会在所有小写字母中显示瑞典语,而实际上我希望案例与实际情况一样。

1 个答案:

答案 0 :(得分:1)

您可以在javascript中执行相同操作;唯一的例外是“完整匹配”反向引用是$&而不是$0。其余的$1$9的工作原理完全相同。在浏览器的地址栏中试用:

javascript: document.write('foobar'.replace(/(f)[o]/g, ' $1 $& '));

此页面包含更多信息:http://www.regular-expressions.info/refreplace.html