Sha*_*ins 224 javascript jquery
非常简单的小问题,但我不太明白该怎么做.
我需要用空格替换'_'的每个实例,并且'#'的每个实例都没有/空.
var string = '#Please send_an_information_pack_to_the_following_address:';
我试过这个:
string.replace('#','').replace('_', ' ');
我不是真的链接这样的命令,但还有另一种方法可以做到这一点吗?
Doo*_*nob 449
使用OR运算符(|):
var str = '#this #is__ __#a test###__';
str.replace(/#|_/g,''); // result: "this is a test"
Run Code Online (Sandbox Code Playgroud)
您还可以使用字符类:
str.replace(/[#_]/g,'');
Run Code Online (Sandbox Code Playgroud)
如果你想用一个东西替换散列而用另一个东西替换下划线,那么你只需要链接.但是,您可以添加原型:
String.prototype.allReplace = function(obj) {
var retStr = this;
for (var x in obj) {
retStr = retStr.replace(new RegExp(x, 'g'), obj[x]);
}
return retStr;
};
console.log('aabbaabbcc'.allReplace({'a': 'h', 'b': 'o'}));
// console.log 'hhoohhoocc';
Run Code Online (Sandbox Code Playgroud)
为什么不连锁?我认为没有错.
Chr*_*phe 48
链接很酷,为什么要解雇呢?
无论如何,这里有一个替换的另一个选项:
string.replace(/#|_/g,function(match) {return (match=="#")?"":" ";})
Run Code Online (Sandbox Code Playgroud)
如果匹配=="#",则替换将选择"",否则选择"".
[更新]对于更通用的解决方案,您可以将替换字符串存储在对象中:
var replaceChars={ "#":"" , "_":" " };
string.replace(/#|_/g,function(match) {return replaceChars[match];})
Run Code Online (Sandbox Code Playgroud)
Mar*_*eed 37
/g在正则表达式上指定(全局)标志以替换所有匹配而不是仅替换第一个匹配:
string.replace(/_/g, ' ').replace(/#/g, '')
Run Code Online (Sandbox Code Playgroud)
要用一个东西替换一个角色而用另一个东西替换另一个角色,你无法真正解决需要两个单独的调用replace.您可以像Doorknob那样将它抽象为函数,尽管我可能会使用旧/新对象作为键/值对而不是平面数组.
Voi*_*icu 34
如果要替换多个字符,可以String.prototype.replace()使用replacement参数调用,该函数是为每个匹配调用的函数.您只需要一个表示您将在该函数中使用的字符映射的对象.
例如,如果您想要a替换x,bwith y和cwith z,您可以执行以下操作:
var chars = {'a':'x','b':'y','c':'z'};
var s = '234abc567bbbbac';
s = s.replace(/[abc]/g, m => chars[m]);
console.log(s);
Run Code Online (Sandbox Code Playgroud)
输出:234xyz567yyyyxz
小智 8
多个子字符串可以用简单的正则表达式替换。例如,我们想将数字(123) 456-7890变成1234567890,我们可以这样做。
var a = '(123) 456-7890';
var b = a.replace(/[() -]/g, '');
console.log(b); // results 1234567890
Run Code Online (Sandbox Code Playgroud)
我们可以在 [] 之间传递要替换的子字符串,并且要使用的字符串应作为第二个参数传递给替换函数。
你可以试试这个:
str.replace(/[.#]/g, 'replacechar');
Run Code Online (Sandbox Code Playgroud)
这将用您的 replacechar 替换 .,- 和 # !
小智 5
请尝试:
替换多字符串
var str = "http://www.abc.xyz.com";
str = str.replace(/http:|www|.com/g, ''); //str is "//.abc.xyz"
替换多字符
var str = "a.b.c.d,e,f,g,h";
str = str.replace(/[.,]/g, ''); //str is "abcdefgh";
祝你好运!
我不知道这有多大帮助,但我想从我的字符串中删除<b>和</b>
所以我用
mystring.replace('<b>',' ').replace('</b>','');
Run Code Online (Sandbox Code Playgroud)
所以基本上如果你想减少有限数量的字符并且不要浪费时间,这将是有用的。
更新
您现在可以在本机使用replaceAll。
过时的答案
这是另一个使用字符串原型的版本。享受!
String.prototype.replaceAll = function(obj) {
let finalString = '';
let word = this;
for (let each of word){
for (const o in obj){
const value = obj[o];
if (each == o){
each = value;
}
}
finalString += each;
}
return finalString;
};
'abc'.replaceAll({'a':'x', 'b':'y'}); //"xyc"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
382272 次 |
| 最近记录: |