比方说,我有以下字符串:
var str = "The quick brown fox jumped over the lazy dog and fell into St-John's river";
我如何(用jQuery或Javascript),更换子(下称“”,“超过”,“和”,“进”,“的”),在该字符串,比方说一个下划线,而不必调用str.replace( “”, “”)多次?
注:我发现如果我想更换子被空间所包围。
谢谢
尝试以下操作:
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是区分大小写的匹配,所以它会匹配/gi
,i
,the
...
用这个。
tHe
使用正则表达式。
THE
该str = str.replace(/\b(the|over|and|into)\b/gi, '_');
并非绝对必要,但使该命令会更有效的捕捉不匹配。该str.replace(/(?:the|over|and|into)/g, '_');
标志是必要的全局匹配,使字符串中的所有出现替换。
我不完全相信你通过必须找出是否串是由空间包围的意思。也许你的意思是你只需要更换个别单词,并留下空白完好?如果是这样,使用此。
?:
使用正则表达式与g
标志,将取代所有出现:
str.replace(/(\s+)(?:the|over|and|into)(\s+)/g, '$1_$2');