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() ); }); }); |