繁体   English   中英

正则表达式替换里面的字符

[英]Regex replace a character inside

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

字符串示例

"blabla url(hello;you);"

我想将url()中的“;”符号替换为其他内容

"blabla url(hello[]you);"

嗯,也许是这样的:

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

我对“ .replace()”使用了两次调用,这可能不是必需的,但它使我更容易思考。 外部的隔离“ url()”内容,然后内部的替换修复分号。

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

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

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

对于所需的regEx,我想我会这样做:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM