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

时间:2012-07-27 05:12:54

标签: javascript regex

我想知道是否有可能替换某些字符串而不是其他在javascript中包含相同值的字符串。例如,假设我有文字A AB,并且只想替换独立的A而不是AB中的A. (注意:我知道在这种情况下我可以手动执行此操作,但我计划在大块文本中使用这样的场景)是否有算法或内置js命令来执行此操作?

4 个答案:

答案 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”),'');