在字符的两边只添加一个 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';
//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';