如何使用正则表达式匹配此字符串:
<div><span>regular</span><span>expression</span></div>
。
如何更换内容的第一个范围和第二个范围的内容。
在我看来,它可以使用jquery源代码。
答案 0 :(得分:1)
请务必阅读RegEx match open tags except XHTML self-contained tags
然后解决问题的方法是:
var str = '<div><span>regular</span><span>expression</span></div>';
var newString =
str.replace(
/(<div><span>)([^<]*)(<\/span><span>)([^<]*)(<\/span><\/div>)/i,
'$1$4$3$2$5'
); // where /[^<]*/ matches anything but '<'
// results in "<div><span>expression</span><span>regular</span></div>"
空白安全正则表达式:
/(<\s*div\s*>\s*<\s*span\s*>)([^<]*)(<\/\s*span\s*>\s*<\s*span\s*>)([^<]*)(<\/\s*span\s*>\s*<\/\s*div\s*>)/i
但老实说,这只是对你模糊问题的模糊回答,可能需要 bit more jQuery :)