Javascript:替换ab中的a而不是a

Javascript:Replacing a but not the a in ab

本文关键字:中的 替换 ab Javascript      更新时间:2024-04-17

我想知道是否可以替换某些字符串,而不替换javascript中包含相同值的其他字符串。例如,假设我有文本A AB,并且只想替换独立的A,而不想替换AB中的A?

使用带有单词边界的正则表达式。

var str = 'A AB';
str = str.replace(/'bA'b/g, '');

您可以使用javascript、中的正则表达式来实现这一点

string = string.replace(/A/, "AB")

将取代第一次出现的charecters。

string = string.replace(/A/g, "AB")

将用"AB"替换所有出现的"A"

如果您只想替换独立的字母"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

除了其他答案外,您还可以编写:string=string.replace(/a(?=''s)/,");(?=表示只有下一个字符为空格/tab等时,它才会替换"a"。。如果您需要其他条件(只有"a"匹配,而不是(?=…)中的条件正则表达式

对于评论中的另一个问题(Asaph回答),你可以写:

str=str.replace(RegExp("''''b"+x+"''''b",'g'),'');