cho*_*bo2 136 javascript jquery
我有这个
var date = $('#Date').val();
Run Code Online (Sandbox Code Playgroud)
这得到文本框中的值,看起来像这样
2009/12/31
现在我就这样做了
var id = 'c_' + date.replace("/", '');
Run Code Online (Sandbox Code Playgroud)
结果是
c_1231/2009
它错过了最后的'/'我不明白为什么.
Gum*_*mbo 239
您需要将g标志设置为全局替换:
date.replace(new RegExp("/", "g"), '')
// or
date.replace(/\//g, '')
Run Code Online (Sandbox Code Playgroud)
否则只会替换第一次出现.
bob*_*nce 73
与C#/ .NET类库(以及大多数其他敏感语言)不同,当您将String
in作为string-to-match参数传递给string.replace
方法时,它不会执行字符串替换.它将字符串转换为a RegExp
并进行正则表达式替换.正如Gumbo所解释的那样,正则表达式替换需要一个g
默认情况下未启用的lobal标志来一次性替换所有匹配.
如果你想要一个真正的基于字符串的替换 - 例如因为匹配字符串是动态的并且可能包含在regexen中具有特殊含义的字符 - 那么JavaScript的习语就是:
var id= 'c_'+date.split('/').join('');
Run Code Online (Sandbox Code Playgroud)
您可以使用:
String.prototype.replaceAll = function(search, replace) {
if (replace === undefined) {
return this.toString();
}
return this.split(search).join(replace);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
103308 次 |
最近记录: |