删除最后一个无效字符,而不是第一个(javascript验证)
问题描述:
我想写一个JavaScript验证方法,以便如果输入多个大写字母,它将在运行中删除其他大写字母。然而,除去第一个大写字母,我希望它删除最后一个(不以x=1
存在)删除最后一个无效字符,而不是第一个(javascript验证)
这是我的代码...
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), "");
}
}
有什么办法识别最后输入的字母,而不反转字符串,以便我可以删除大写字母?
答
反转您的字符串,然后通过“删除第一个大写字母”代码运行,然后重新将其撤回。
答
你可以使用String.replace:
var one = false;
finalValue = value.replace(/([A-Z])/g, function() {
if (one) return '';
one = true;
return arguments[1];
});
答
反向你的循环索引。从value.length
开始,然后使用x--
而不是x++
,直到达到0为止。在此时您不需要j
。
for (var i = value.length; i > 0; i--) {
...
}
+0
不幸的是没有工作,因为我有其他验证,以确保只有一个资本 – Jason
和一个简单的方法来做到这一点是'value.split(“”)。反向()。加入(“”)' –
这是正在上飞完成的,所以我害怕倒车串在飞行中将会有用户交互问题。 – Jason