我尝试使用正则表达式替换方法来替换给定字符串中的xxx="yyy"
文本模式。
我的模式是:/^[a-zA-Z0-9.;:|_-]+="[a-zA-Z0-9.;:_-]+\"/
代码:
var userinput = '<div id="c16430" style="color:red;" class="css-btn">';
var pattern = /^[a-zA-Z0-9.;:|_-]+="[a-zA-Z0-9.;:_-]+\"/;
userinput = userinput.replace( pattern, "Replaced..." );
但它不起作用...... jsfiddle。有什么问题?
提前致谢..
答案 0 :(得分:5)
你有几个问题:
^
/g
,因此它只会替换第一个匹配项。这将有效:
var pattern = /[a-zA-Z0-9.;:|_-]+="[a-zA-Z0-9.;:_-]+\"/g;
答案 1 :(得分:2)
为您简化。如上所述,这可能与错误的输入相匹配,而不知道您的输入有多严格。
var pattern = /[^ =]+="[^"]+"/g;
或忽略非单词字符
var pattern = /[^\W]+="[^"]+"/g;
或坚持原始想法,i
修饰符用于执行不区分大小写的匹配。
var pattern = /[a-z0-9_.|:;-]+="[^"]+"/ig;
答案 2 :(得分:0)
这是完美的
/\s[^=]+\=\".*?\"/g