我正在尝试将以下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>");
这会将原始结果替换为来自用户的输入,因此当用户输入时,我会在所有小写字母中显示瑞典语,而实际上我希望案例与实际情况一样。
答案 0 :(得分:1)
您可以在javascript中执行相同操作;唯一的例外是“完整匹配”反向引用是$&
而不是$0
。其余的$1
到$9
的工作原理完全相同。在浏览器的地址栏中试用:
javascript: document.write('foobar'.replace(/(f)[o]/g, ' $1 $& '));
此页面包含更多信息:http://www.regular-expressions.info/refreplace.html