JavaScript:正则表达式替换foo(对foo(

时间:2014-02-08 06:30:12

标签: javascript regex

在字符串中,我尝试在space之前制作(

例如,

foo(应替换为foo (

在JavaScript中,

\S\(/g

我确认此正则表达式匹配 fo o( ,但不确定如何将其替换为 fo o (

我知道这应该由$1个变量来完成,但是你能告诉我这个方法吗?谢谢。

6 个答案:

答案 0 :(得分:0)

这样就可以了:

var str = "foo(hello)";

str = str.replace(/(?=\S\()(\S)/g, "$1 ");

工作正则表达式示例:

http://regex101.com/r/tD9mV9

答案 1 :(得分:0)

var s = "foo()";
var withSpaces = s.replace(/(\S)\(/g, '$1 (');

唯一会遇到麻烦的地方是,如果括号出现在字符串的开头,\S将不匹配。在这种情况下,你可以这样做:

var withSpaces = s.replace(/(\S|^)\(/g, '$1 (');

答案 2 :(得分:0)

这有效 -

var str = "foo()";
str.replace(/(\S)(\()/, "$1 $2");
//OUTPUT - foo ()

答案 3 :(得分:0)

var string =  "foo()";
var foo = string.replace("\(", " (");
console.log(foo);

答案 4 :(得分:0)

var str = 'foo()  abc()';
var regex = /(\S)\(/g;
str = str.replace(regex,"$1 (");//foo ()  abc ()
console.log(str);
str = str.replace(regex,"$1 (");//not duplicate space
console.log(str);

答案 5 :(得分:0)

split + join替代方:

'foo   ()'.split(/ *\(/).join(' (')