我需要将'_'的每个实例替换为一个空格,并将'#'的每个实例替换为无/空。
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('_', ' ');
我真的不喜欢这样的链接命令。有没有另一种方法可以一次性完成?
当前回答
请尝试:
更换多管柱 Var STR = "http://www.abc.xyz.com"; STR = STR .replace(/http:|www|.com/g, ");//str是"//.abc.xyz" 替换多字符 Var STR = "a.b.c.d,e,f,g,h"; STR = STR .replace(/[。) / g,”);//str是"abcdefgh";
好运!
其他回答
这里有一个不需要RegEx的简单方法。您可以根据需要创建原型和/或缓存内容。
// Example: translate( 'faded', 'abcdef', '123456' ) returns '61454'
function translate( s, sFrom, sTo ){
for ( var out = '', i = 0; i < s.length; i++ ){
out += sTo.charAt( sFrom.indexOf( s.charAt(i) ));
}
return out;
}
还可以将RegExp对象传递给replace方法,如
var regexUnderscore = new RegExp("_", "g"); //indicates global match
var regexHash = new RegExp("#", "g");
string.replace(regexHash, "").replace(regexUnderscore, " ");
Javascript RegExp
在正则表达式上指定/g (global)标志来替换所有匹配项,而不仅仅是第一个:
string.replace(/_/g, ' ').replace(/#/g, '')
要用一种东西替换一个字符,用另一种东西替换另一个字符,你真的不能避免需要两个单独的调用来替换。你可以把它抽象成一个函数,就像门把手做的那样,尽管我可能会让它把一个对象的旧/新作为键/值对,而不是一个平面数组。
请尝试:
更换多管柱 Var STR = "http://www.abc.xyz.com"; STR = STR .replace(/http:|www|.com/g, ");//str是"//.abc.xyz" 替换多字符 Var STR = "a.b.c.d,e,f,g,h"; STR = STR .replace(/[。) / g,”);//str是"abcdefgh";
好运!
一个函数和一个原型函数。
String.prototype.replaceAll = function (search, replacement) {
var target = this;
return target.replace(new RegExp(search, 'gi'), replacement);
};
var map = {
'&': 'and ',
'[?]': '',
'/': '',
'#': '',
// '|': '#65 ',
// '[\]': '#66 ',
// '\\': '#67 ',
// '^': '#68 ',
'[?&]': ''
};
var map2 = [
{'&': 'and '},
{'[?]': ''},
{'/': ''},
{'#': ''},
{'[?&]': ''}
];
name = replaceAll2(name, map2);
name = replaceAll(name, map);
function replaceAll2(str, map) {
return replaceManyStr(map, str);
}
function replaceManyStr(replacements, str) {
return replacements.reduce((accum, t) => accum.replace(new RegExp(Object.keys(t)[0], 'g'), t[Object.keys(t)[0]]), str);
}