Javascript 减少特定字符的正则表达式
我有这个HTML标记Javascript 减少特定字符的正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,我有这个HTML标记,我如何使用正则表达式将“放在字母c之后 HTML: 正则表达式:/\=\s*[“”](.*)[^”“”]\s*\>/g 替换:=“$1”> 怎么样 str.replace(/href="[^\s>"]+/, function(match) { return match+'"' }); 怎么样 str.replace(/href="[^\s>"]+/, function(match) { return match+'"' }); 我建议如下: str.re
,我如何使用正则表达式将“放在字母c之后
HTML:
正则表达式:/\=\s*[“”](.*)[^”“”]\s*\>/g
替换:=“$1”>
怎么样
str.replace(/href="[^\s>"]+/, function(match) { return match+'"' });
怎么样
str.replace(/href="[^\s>"]+/, function(match) { return match+'"' });
我建议如下:
str.replace(/=\s*["']([^"']*?)\s*?(?=>)/g,'="\1"');
这在第二个“
已经存在的情况下也应该有效。它还允许在=
和字符串开头之间使用空格
请参见此处以获取演示:
另一个问题可能是以下情况:
<a href="abc def > google </a>
我的解决方案将把它变成
<a href="abc def"> google </a>
但是,当然,这一解决方案有其局限性,到目前为止还不是无懈可击的。它将只对每个标记的最后一个属性起作用(因为regexp中有lookahead
(?=>)
。我建议如下:
str.replace(/=\s*["']([^"']*?)\s*?(?=>)/g,'="\1"');
这在第二个“
已经存在的情况下也适用。它还允许在=
和字符串开头之间使用空格
请参见此处以获取演示:
另一个问题可能是以下情况:
<a href="abc def > google </a>
我的解决方案将把它变成
<a href="abc def"> google </a>
但是,当然,这个解决方案有其局限性,而且到目前为止还不是无懈可击的。它只对每个标记的最后一个属性起作用(因为regexp中的lookahead
(?=>)
).事实上,我正在进行一些测试,以了解匹配变量是如何填充的,但这是一个很好的简短解决方案。不幸的是,如果第二个“
已经就位,如
,它将失败。这将变成
好位置。我会想出一个解决办法,但你的答案已经涵盖了它。实际上,这是可行的,我正在做一些测试,看看,我不明白匹配变量是如何填充的,但感谢这是一个又好又短的解决方案。不幸的是,如果第二个“
已经在
中,它将失败。这将被更改为
好位置。我会想到一个修复方法,除非您的答案已经涵盖了它。