我正在尝试编写一个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), "");
}
}
有没有办法识别最后输入的字母,而不会反转字符串,以便我可以删除大写字母?
答案 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--) {
...
}