正则表达式替换问题

Regex Replace issue

本文关键字:问题 替换 正则表达式      更新时间:2023-09-26

我尝试使用正则表达式替换方法来替换给定字符串中的文本模式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..." );

但它不起作用...杰斯菲德尔。怎么了?

提前谢谢..

你有几个问题:

  1. 您正在尝试匹配输入的开头,在开头使用 ^
  2. 您没有在末尾使用全局标志/g,因此它只会替换第一个匹配项。

这将起作用:

var pattern = /[a-zA-Z0-9.;:|_-]+="[a-zA-Z0-9.;:_-]+'"/g;

这是您更新的示例

为您简化。如前所述,这可能会匹配错误输入,不知道您的输入有多严格。

var pattern = /[^ =]+="[^"]+"/g;

或忽略非单词字符

var pattern = /[^'W]+="[^"]+"/g;

或者坚持原来的想法,i修饰符用于执行不区分大小写的匹配。

var pattern = /[a-z0-9_.|:;-]+="[^"]+"/ig;

这是完美的

/'s[^=]+'='".*?'"/g