删除最后一个无效字符,而不是第一个(javascript验证)

时间:2011-09-13 20:01:36

标签: javascript validation

我正在尝试编写一个javascript验证方法,这样,如果输入了多个大写字母,它会动态删除其他大写字母。但是,它正在删除第一个大写字母,我希望它删除最后一个大写字母(在x=1不存在)

这是我的代码......

for(var x = 1, j = value.length; x < j; x++){
    if(value.charAt(x) != newValue.charAt(x)){
        valid = false;
        $("#text_10").attr({ 
            "value":$("#text_10").attr("value").replace(value.charAt(x), "")
         });
        finalVal = finalVal.replace(value.charAt(x), "");
    }
}

有没有办法识别最后输入的字母,而不会反转字符串,以便我可以删除大写字母?

3 个答案:

答案 0 :(得分:1)

反转你的字符串,然后通过“删除第一个大写字母”代码运行它,然后重新将其反转。

答案 1 :(得分:0)

您可以使用String.replace

var one = false;
finalValue = value.replace(/([A-Z])/g, function () {
   if (one) return '';
   one = true;
   return arguments[1];
}); 

答案 2 :(得分:0)

反转你的循环索引。从value.length开始,然后使用x--而非x++返回,直至达到0.此时您将不需要j

for (var i = value.length; i > 0; i--) {
    ...
}