【发布时间】:2015-10-27 19:49:57
【问题描述】:
一位用户很友善地帮助我在 PHP 中使用正则表达式,但现在我意识到我在 JS 中也需要它。我一直在花费大量时间进行测试/实验,但没有成功。
在 JS 中,我想转这个:
[data-user="12345-6789" data-userId="3456-789"]John Smith[/] ...Blablabla some other text... [data-user="4567-891011" data-userId="5678-9101112"]Foo Bar[/]
进入这个:
<span data-user="12345-6789" data-userId="3456-789">John Smith</span> ...Blablabla some other text... <span data-user="4567-891011" data-userId="5678-9101112">Foo Bar</span>
这是我的 PHP 正则表达式,完美运行:
$regex = '~\[(data-user="[\d-]+")\s+(data-userId="[\d-]+")\]\s*(.+?)\s*\[\/\]\s*(.*)~is';
while (preg_match($regex, $string)) {
$string = preg_replace($regex, "<span $1 $2>$3</span>$4", trim(strip_tags($string)));
}
附:我完全知道使用正则表达式解析 HTML 是不受欢迎的,但由于一切都是一致的,我认为这将是最好的方法。
非常感谢。
【问题讨论】:
-
那么你的问题是什么?
-
你尝试过什么 Javascript?
-
@Kyll 看起来只是 “如何让这段代码在 JavaScript 中做同样的事情”。
-
啊。然后,Stack Overflow 是一个问答网站,而不是代码翻译服务。尝试先自己翻译代码,遇到困难再找我们,一定要告诉我们what you have tried。
标签: javascript php regex markdown