第一次使用后jQuery忽略.replace()

时间:2011-02-04 17:24:01

标签: javascript jquery

下面的代码行应该接受我输入的内容并将“”替换为“ - ”,它在第一个空格中起作用,但之后没有空格。

$('#myinput').live('keypress', function() {  
    var value = $(this).val();  
    value = value.replace(" ", "-");  
    $('#mydiv').text(value);  
});

2 个答案:

答案 0 :(得分:1)

尝试

value = value.replace(new RegExp("\\s", "g"), "-")

如果您想用一个"\\s+"

替换多个连续的空格,也可以使用-

同时将input视为一个事件,将.delegate视为一种方法。

$('#inputdiv').delegate("#myinput", 'input', function() {  
    var value = $(this).val();  
    value = value.replace(new RegExp("\\s", "g"), "-");  
    $('#mydiv').text(value);  
});

依靠RegExp.delegateinput

答案 1 :(得分:0)

value.replace根本不依赖于jQuery。它是JavaScript语言的一部分。 JavaScripts String.replace函数使用正则表达式。如果没有其他修饰符,则替换函数将匹配模式的第一个匹配项。您可以通过定义全局修饰符g来替换所有匹配项。

尝试

value = value.replace( / /g, "-");