是否可以合并两个正则表达式查询?

时间:2015-03-03 16:52:03

标签: javascript regex

我继续这两个替换查询(由javascript调用),以处理颜色css样式将放置在style属性末尾的情况,没有分号......

replace(/\bstyle=["|'](.*)(?:color:.*?;)(.*)["|']/gi, 'style="$1$2"' )
replace(/\bstyle=["|'](.*)(?:color:.*["|'])/gi, 'style="$1"' )

合并它们会更漂亮......但是我花了好几个小时没有成功!

编辑:这是一个示例文本:

Lorem ipsum <span style="font-style:italic; color: blue; font-weight: bold;">dolor sit amet</span>, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim <span style="font-style:italic; font-weight: bold; color: blue">ad minim veniam</span>, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

2 个答案:

答案 0 :(得分:0)

这应该这样做:

replace(/\bstyle(=["'].*)(?:color:.*?;(.*)["']|color:[^;]*?["'])/gi, 'style$1$2');

答案 1 :(得分:0)

您似乎正在尝试从样式中删除color。 我认为,而不是重建style, 最好通过

删除color
replace(/\bcolor:[^;'"]*;?/gi, '');       //updated from [^; ] to [^;'"]

它将替换从color;space""

的所有内容