jQuery多个字符替换

jQuery multiple character replace

我有一个非常简单的问题。不幸的是,我找不到答案。

我刚做了两个简单的输入函数

1
2
3
Input 1:<br /><input type="text" id="i1" name="i1" />
Input 2:<br />
<input type="text" id="i2" name="i2" />

在更改输入1时,我希望在输入2中显示结果。此外,我还希望替换一些字符,并将这些字符设为小写(以便将其用作URL)。

所以我编写了以下jquery代码:

1
2
3
4
$("#i1").keyup(function() {
var ptitle = $("#i1").val();
$("#2").val(ptitle.replace("","-").toLowerCase());
});

这很好,除非我键入一个字符串,该字符串要替换同一个字符多次。然后它只是第一次取代。

例如:当我输入1时:"About this company"将导致输入2:"About this company"。应该是:"关于这家公司"。有人知道我的jquery代码出了什么问题吗?


像这样:

1
2
3
4
$("#i1").keyup(function() {
    var ptitle = $(this).val();
    $("#i2").val(ptitle.replace(/\s/g,"-").toLowerCase());
});


这是因为replace需要一个全局标志来替换多个实例。

试试这个

1
2
3
$("#i1").keyup(function() { var ptitle = $("#i1").val();
       $("#2").val(ptitle.replace(/ /g,"-").toLowerCase());
});

这里有一个非常接近你的问题,有一个很好的答案:在javascript中用下划线替换空格?


这对我有用

1
2
3
4
5
6
$(function(){
  $("#i1").keyup(function() {
    var ptitle = $("#i1").val();
    $("#i2").val( ptitle.replace(/ /g,"-").toLowerCase() );
  });
});