在角色的任一侧仅添加单个空格

时间:2015-01-10 00:49:33

标签: javascript regex string

//case 1
var str = 'x=12';

str = str.replace(/=/g, ' = ');  // str = 'x = 12';

//case 2
var str = 'x =12';

str = str.replace(/ =/g, '= '); // str = 'x = 12';

//case 3
var str = 'x= 12';

str = str.replace(/= /g, ' ='); // str = 'x = 12';

我需要检查所有3个案例。如果我只使用上面的所有3个replace()语句,它会添加额外的空格。 有更好的方法吗? (也许是正则表达式)

2 个答案:

答案 0 :(得分:2)

//case 1
var str = 'x=12';

str.replace(/\s*=\s*/,' = ');  // str = 'x = 12';

//case 2
var str = 'x =12';

str.replace(/\s*=\s*/,' = '); // str = 'x = 12';

//case 3
var str = 'x= 12';

str.replace(/\s*=\s*/,' = '); // str = 'x = 12';

答案 1 :(得分:1)

这个正则表达式应该这样做:

/ ?= ?/g

您也可以使用:

/\s?=\s?/g

此处\s匹配所有空白字符。

它检查在它之前和/或之后是否存在带有或没有空格的=符号。 ?符号检查空格字符是否匹配为零或一次。

str = str.replace(/ ?= ?/g, ' = ');