我有这个
var date = $('#Date').val();
这在文本框中获取值看起来像这样
2009 年 12 月 31 日
现在我这样做
var id = 'c_' + date.replace("/", '');
结果是
c_1231/2009
它错过了最后一个 '/' 我不明白为什么。
我有这个
var date = $('#Date').val();
这在文本框中获取值看起来像这样
2009 年 12 月 31 日
现在我这样做
var id = 'c_' + date.replace("/", '');
结果是
c_1231/2009
它错过了最后一个 '/' 我不明白为什么。
与 C#/.NET 类库(以及大多数其他明智的语言)不同,当您将 aString
作为字符串匹配参数传入该string.replace
方法时,它不会执行字符串替换。它将字符串转换为 aRegExp
并进行正则表达式替换。正如 Gumbo 解释的那样,正则表达式替换需要g
lobal 标志(默认情况下未启用)一次性替换所有匹配项。
如果你想要一个真正的基于字符串的替换——例如因为匹配字符串是动态的并且可能包含在正则表达式中具有特殊含义的字符——JavaScript 惯用语是:
var id= 'c_'+date.split('/').join('');
您可以使用:
String.prototype.replaceAll = function(search, replace) {
if (replace === undefined) {
return this.toString();
}
return this.split(search).join(replace);
}