替换字符串的所有子

问题描述 投票:3回答:4

比方说,我有以下字符串:

var str = "The quick brown fox jumped over the lazy dog and fell into St-John's river";

我如何(用jQuery或Javascript),更换子(下称“”,“超过”,“和”,“进”,“的”),在该字符串,比方说一个下划线,而不必调用str.replace( “”, “”)多次?

注:我发现如果我想更换子被空间所包围。

谢谢

javascript jquery regex
4个回答
8
投票

尝试以下操作:

var newString = str.replace(/\b(the|over|and|into)\b/gi, '_');
// gives the output:
// _ quick brown fox jumped _ _ lazy dog _ fell _ St-John's river

\b匹配一个单词边界,该|是“或者”,所以它会匹配“的”,但它不会在字符“主题”相匹配。

该qazxsw POI标志为G全球(所以它会取代所有匹配的事件。该qazxsw POI是区分大小写的匹配,所以它会匹配/giithe ...


1
投票

用这个。

tHe

0
投票

使用正则表达式。

THE

str = str.replace(/\b(the|over|and|into)\b/gi, '_'); 并非绝对必要,但使该命令会更有效的捕捉不匹配。该str.replace(/(?:the|over|and|into)/g, '_'); 标志是必要的全局匹配,使字符串中的所有出现替换。

我不完全相信你通过必须找出是否串是由空间包围的意思。也许你的意思是你只需要更换个别单词,并留下空白完好?如果是这样,使用此。

?:

0
投票

使用正则表达式与g标志,将取代所有出现:

str.replace(/(\s+)(?:the|over|and|into)(\s+)/g, '$1_$2');
© www.soinside.com 2019 - 2024. All rights reserved.