正则表达式替换内部的字符

时间:2011-01-19 17:52:15

标签: javascript regex replace

如何在javascript中编写正则表达式,用“url()”中的某个字符替换所有字符?

示例字符串

"blabla url(hello;you);"

我想替换“;” - 将url()内部的符号替换为喜欢

的内容
"blabla url(hello[]you);"

3 个答案:

答案 0 :(得分:3)

嗯,也许是这样的:

var result = "blabla url(hello;you)".replace(/url\(([^)]*)\)/, function(_, url) {
  return "url(" + url.replace(/;/g, "[]") + ")";
});

我使用了两次调用" .replace()"哪些可能没有必要,但这让我更容易思考。外层隔离了" url()"内容,然后内部替换修复分号。

答案 1 :(得分:1)

var str = "blabla url(hello;you;cutie);";
str = str.replace( /url\(([^)]+)\)/g, function(url){
  return url.replace( /;/g, '[]' );
});
// "blabla url(hello[]you[]cutie);"

答案 2 :(得分:0)

regEx看起来有点沉重。在大多数浏览器中,split-join可能更快。

var result = "blabla url(hello;you)".split(';').join('[]');

对于regEx要求我想我会这样做:

var result = "blabla url(hello;you)".replace(/;/,'[]');