我想知道是否有可能替换某些字符串而不是其他在javascript中包含相同值的字符串。例如,假设我有文字A AB
,并且只想替换独立的A
而不是AB中的A. (注意:我知道在这种情况下我可以手动执行此操作,但我计划在大块文本中使用这样的场景)是否有算法或内置js命令来执行此操作?
答案 0 :(得分:7)
使用带有word boundaries的正则表达式。
var str = 'A AB';
str = str.replace(/\bA\b/g, '');
答案 1 :(得分:0)
您可以使用javascript中的正则表达式实现此目的,
string = string.replace(/A/, "AB")
将取代第一次出现的字符。
string = string.replace(/A/g, "AB")
将用“AB”替换所有出现的“A”
答案 2 :(得分:0)
如果您只想更换独立字母“A”,那么您可能需要以下内容:
var re = /(^|\s)a(\s|$)/ig;
然后你可以这样做:
var s = 'A ab a ba a-b b-a a:v b a';
alert(s.replace(re, 'Z')); // ZabZba a-b b-a a:v bZ
请注意,这也会消除字母周围的空白区域。
保留空白:
alert( s.replace(re, '$1Z$2') ); // Z ab Z ba a-b b-a a:v b Z
答案 3 :(得分:0)
除了别人的答案,你还可以写: 字符串=与string.replace(/一个(= \ S)/ “”?); (?=表示只有当下一个 characers为空格/制表符等时才会替换'a'。 你还可以编写不同的正则表达式而不是\ s如果你需要其他条件(只有'a'匹配,而不是(?= ...)中的条件正则表达式
对于您在评论中的其他问题(在Asaph的回答中),您可以写:
str = str.replace(RegExp(“\\ b”+ x +“\\ b”,“g”),'');