这个替换程序在JavaScript中有什么问题?

时间:2012-04-24 06:35:26

标签: javascript jquery replace

我有以下代码,正确实现了jQuery(它已经过测试才能运行):

var notrightfake = $("#ansbox").val();
var notright = notrightfake.replace(" ", "");

$("#ansbox")input type="text"框。但是说我输入He llo t his is m e,该程序不应该显示Hellothisisme,而不是根本不工作?

jsFiddle示例:http://jsfiddle.net/WUvu5/

感谢您的支持,

Lucas Chen

4 个答案:

答案 0 :(得分:6)

replace函数仅替换第一次出现的子字符串。

您必须使用正则表达式来替换所有出现的内容:

var notright = notrightfake.replace(/ /g, "");

答案 1 :(得分:1)

您必须进行实际替换,只需将其分配给代码中的变量即可。

var notrightfake = $("#ansbox").val();
$("#ansbox").val(notrightfake.replace(" ", ""));

编辑:您必须在事件中使用它,即。 keyup

$('input').keyup(function(){
    var newValue = this.value.replace(/\s/, '');
    $(this).val(newValue);
});

演示:http://jsfiddle.net/elclanrs/3YWxh/

答案 2 :(得分:0)

试试这个 notrightfake.replace(/ / gi,“”);

答案 3 :(得分:0)

请尝试以下代码:

var notrightfake = $("#ansbox").val();
var notright = notrightfake.replace(/\s+/g, "");
alert(notright);

或者你可以使用一些修剪功能:

function trim(str) {
    return str.replace(/^\s+|\s+$/g,"");
};
function ltrim(str) {
    return str.replace(/^\s+/,"");
};
function rtrim(str) {
    return str.replace(/\s+$/,"");
};