jquery取代不工作

时间:2011-01-31 17:26:29

标签: jquery replace

我有2个文本框,一个名为'title',一个名为'url'。在.blur()上使用jquery我将'title'的值复制到'url'值并且我用下划线替换空格,但由于某种原因它只替换第一个空格而不是全部他们:这是代码:

$("#title").blur(function(){
      var myval = $(this).val().replace(" ", "_");
      $("#url").val(myval);
 });

我做错了什么?

提前致谢

4 个答案:

答案 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