我需要将'_'的每个实例替换为一个空格,并将'#'的每个实例替换为无/空。
var string = '#Please send_an_information_pack_to_the_following_address:';
我试过了:
string.replace('#','').replace('_', ' ');
我真的不喜欢这样的链接命令。有没有另一种方法可以一次性完成?
我需要将'_'的每个实例替换为一个空格,并将'#'的每个实例替换为无/空。
var string = '#Please send_an_information_pack_to_the_following_address:';
我试过了:
string.replace('#','').replace('_', ' ');
我真的不喜欢这样的链接命令。有没有另一种方法可以一次性完成?
当前回答
你可以试试这个:
str.replace(/[.#]/g, 'replacechar');
这将用你的replacechar !
其他回答
对于什么都不替换,tckmn的答案是最好的。
如果你需要替换对应匹配的特定字符串,下面是Voicu和Christophe回答的一个变体,避免重复被匹配的内容,这样你就不必记得在两个地方添加新的匹配:
const replacements = {
'’': "'",
'“': '"',
'”': '"',
'—': '---',
'–': '--',
};
const replacement_regex = new RegExp(Object
.keys(replacements)
// escape any regex literals found in the replacement keys:
.map(e => e.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))
.join('|')
, 'g');
return text.replace(replacement_regex, e => replacements[e]);
可以用一个简单的正则表达式替换多个子字符串。 例如,我们想要将数字(123)456-7890转换为1234567890,我们可以这样做。
var a = '(123) 456-7890';
var b = a.replace(/[() -]/g, '');
console.log(b); // results 1234567890
我们可以在[]之间传递要替换的子字符串,而要替换的字符串应该作为第二个参数传递给replace函数。
String.prototype.replaceAll =函数(obj keydata =“关键”){ const键= keydata.split(关键); 返回Object.entries (obj) .reduce((,(关键,val)) = > a.replace(新的正则表达式(“${键[0]}${关键}${键[1]}',' g '), val),) } Const data='隐藏dv SDC sd {yathin} {ok}' console.log (data.replaceAll ({yathin: 12,好的:“嗨”},{关键}))
如果你想替换多个字符,你可以调用String.prototype.replace(),替换参数是为每个匹配调用的函数。您所需要的只是一个表示将在该函数中使用的字符映射的对象。
例如,如果你想用x替换a,用y替换b,用z替换c,你可以这样做:
Const chars = { a:“x”, b:‘y’, “c”:“z” }; Let s = ' 234abc567bbbac '; S = S .replace(/[abc]/g, m => chars[m]); console.log(年代);
输出:234xyz567yyyyxz
或者选择对我来说很好 示例let sample_string = <strong>一些带有html标签的单词</strong> |。需要删除强标签和“|”文本。 代码如下:= sample_string.replace(/\|(.*)|<strong>|<\/strong>/g,"")