如何使用正则表达式匹配字符串<div> <span>常规</span> <span>表达式</span> </div>

时间:2014-08-27 10:02:54

标签: javascript regex

  1. 如何使用正则表达式匹配此字符串: <div><span>regular</span><span>expression</span></div>

  2. 如何更换内容的第一个范围和第二个范围的内容。

  3. 在我看来,它可以使用jquery源代码。

1 个答案:

答案 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 :)