在字符的两边只添加一个 space

Add only single space on either side of character

//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() 语句,它会添加额外的空格。 有什么更好的办法吗? (也许是正则表达式)

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

/ ?= ?/g

您还可以使用:

/\s?=\s?/g

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

它检查在and/or 之前是否有= 符号,有或没有space。 ? 符号检查白色 space 字符是否匹配零次或一次。

str = str.replace(/ ?= ?/g, ' = ');
//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';