我有2个文本框,一个名为'title',一个名为'url'。在.blur()
上使用jquery我将'title'的值复制到'url'值并且我用下划线替换空格,但由于某种原因它只替换第一个空格而不是全部他们:这是代码:
$("#title").blur(function(){
var myval = $(this).val().replace(" ", "_");
$("#url").val(myval);
});
我做错了什么?
提前致谢
答案 0 :(得分:11)
要进行全局替换,您需要使用带有g
标志的正则表达式:
var myval = $(this).val().replace(/ /g, "_");
答案 1 :(得分:2)
您需要使用正则表达式来查找要替换的所有字符串(在这种情况下为空格)。
$("#title").blur(function(){
var myval = $(this).val().replace(/ /g, "_");
$("#url").val(myval);
});
“g”表示“全局”,因此即使在第一场比赛后它也会继续搜索。
答案 2 :(得分:1)
这是我的替换功能!我希望你会喜欢它。
function myReplaceMethod(str,find,replace_with){
while (str.indexOf(find) !== -1 ){
from = str.indexOf(find);
to = from + find.length;
str = str.substr(0,from)+replace_with+str.substr(to, str.length-to);
}
return str;
}
使用示例:
str = myReplaceMethod(str,"example1",""); // nothing
str = myReplaceMethod(str,"example2","new text here"); //for new text
有关详细信息,请访问我的博客: http://www.phpdevblog.eu/2012-06/jquery/javascript-replace-method-not-working-properly.html
答案 3 :(得分:0)
最好的方法就是使用“而不是”。
discount = item.val()。replace(“,”,“。”);
如果您插入8,09,则会转换为8.09