我想知道是否可以替换某些字符串,但不能替换其他在 javascript 中包含相同值的字符串。例如,假设我有文本A AB
并且只想替换独立A
而不是 AB 中的 A。(注意:我知道在这种情况下我可以手动执行此操作,但我计划在大文本块中使用这样的场景)是否有算法或内置的 js 命令来执行此操作?
问问题
233 次
4 回答
7
使用带有单词边界的正则表达式。
var str = 'A AB';
str = str.replace(/\bA\b/g, '');
于 2012-07-27T05:24:47.240 回答
0
除了其他答案,您还可以写: string=string.replace(/a(?=\s)/,""); (?= 表示只有在下一个字符是空格/制表符等时才会替换 'a'。如果您需要其他条件,也可以编写不同的正则表达式而不是 \s (只有 'a' 会匹配,而不是条件(?=...) 中的正则表达式
对于评论中的其他问题(在 Asaph 答案中),您可以写:
str = str.replace(RegExp("\\b"+x+"\\b",'g'),'');
于 2012-07-27T13:42:03.457 回答
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
于 2012-07-27T05:45:53.817 回答
0
您可以使用 javascript 中的正则表达式来实现这一点,
string = string.replace(/A/, "AB")
将替换第一次出现的字符。
string = string.replace(/A/g, "AB")
将所有出现的“A”替换为“AB”
于 2012-07-27T05:23:20.517 回答