我有这个
var date = $('#Date').val();
这将在文本框中获取值,如下所示
2009年12月31日
现在我在上面做
var id = 'c_' + date.replace("/", '');
结果是
c_1231 / 2009
它错过了我不明白为什么的最后一个'/'。
您需要设置g标志以全局替换:
date.replace(new RegExp("/", "g"), '')
// or
date.replace(/\//g, '')
否则,将仅替换第一个匹配项。
与C#/。NET类库(和大多数其他明智的语言)不同,当您将String
in传递为方法的字符串匹配参数时string.replace
,它不会执行字符串替换。它将字符串转换为aRegExp
并进行正则表达式替换。正如Gumbo解释的那样,正则表达式替换需要g
lob标志(默认情况下未启用)来一次性替换所有匹配项。
如果您要基于字符串的实际替换(例如,由于match-string是动态的,并且可能包含在regexen中具有特殊含义的字符),则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);
}
本文地址:http://javascript.askforanswer.com/weishenmeshiyongreplaceshijavascriptzhitihuandiyishilizhongfu.html
文章标签:javascript , jquery
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
文章标签:javascript , jquery
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
评论已关闭!