0

我有一个从 DOM 世界序列化的字符串,我想在该字符串中找到一些结束标记并将它们替换为新字符串。我永远不知道原始字符串的长度,所以字符计数等在这里不起作用。示例场景:

var onetext = "</content><tag>A whole bunch of stuff</tag></message>"
var twotext = "</content><tag>A whole bunch of new, unrelated stuff</tag></message>"
var threetext = onetext.replace(/[\/<]/\\/content>.+</message>/,"</content>"+twotext+"</message>");

我显然没有正则表达式来查找这些反斜杠、大于或小于的实例。我欢迎任何人帮助它正确运行。谢谢。

4

2 回答 2

1

如果您想捕获所有不允许的字符,请为此编写表达式。

这是一个表达式(保留数字、字母和空格,拒绝其他所有内容):(?![a-zA-Z0-9 ])。

如果您正在寻找特定于 HTML 标记的内容,则需要(捕获打开和关闭标记):

([\<]|[/>])

于 2013-07-18T14:50:01.297 回答
1

显然,有一种方法可以用一条线做到这一点

您可以在替换字符串中使用分组标识符,如下所示:

'<foo>Some data</foo>'.replace(/(<foo>)(.+)(<\/foo>)/,'<bar>$2</bar>')

但是,归根结底,如果您只想替换结束标签,只需替换那些,不要担心其余内容,除非您也需要通过它。如果您只看 ... 那么这就是您需要的表达式:

/<\/content>.+<\/message>/
于 2013-07-18T19:24:42.303 回答