如何替换JavaScript中的特定标签内容

sel*_*ary 4 javascript regex

我有一个字符串,字符串可能不是有效的HTML,但它应该包含Title标记。
我想用新内容替换标题的内容。

范例1:

lorem yada yada <title>Foo</title> ipsum yada yada  
Run Code Online (Sandbox Code Playgroud)

应该变成:

lorem yada yada <title>Bar</title> ipsum yada yada  
Run Code Online (Sandbox Code Playgroud)

范例2:

lorem yada yada <title attributeName="value">Foo</title> ipsum yada yada  
Run Code Online (Sandbox Code Playgroud)

应该变成:

lorem yada yada <title attributeName="value">Bar</title> ipsum yada yada  
Run Code Online (Sandbox Code Playgroud)

我不想用正则表达式解析html-只需替换标题标签...请不要在这里给我发送邮件 ...

编辑:经过无数次否决和许多光顾的态度-
我知道(正像在原始帖子中承认的那样),通常Regex不是处理HTML的方法。我对可以解决我的问题的任何解决方案持开放态度,但是到目前为止,每个JQuery / DOM解决方案都无法正常工作。仅凭“正确”是不够的。

Qta*_*tax 5

这是很难做这样的事情可靠地与正则表达式(读:“将所有的情况下不工作”),从而使用某种适当的解析器是最好的,如果可能的。

也就是说,这是一个适用于您的示例的简单表达式:

var re = /(<title\b[^>]*>)[^<>]*(<\/title>)/i;
str = str.replace(re, "$1Bar$2");
Run Code Online (Sandbox Code Playgroud)

某些无法处理且无法正确使用的内容:注释,引号,CDATA等。