2011-09-13 82 views
2

我想寫一個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), ""); 
    } 
} 

有什麼辦法識別最後輸入的字母,而不反轉字符串,以便我可以刪除大寫字母?

回答

1

反轉您的字符串,然後通過「刪除第一個大寫字母」代碼運行,然後重新將其撤回。

+1

和一個簡單的方法來做到這一點是'value.split(「」)。反向()。加入(「」)' –

+0

這是正在上飛完成的,所以我害怕倒車串在飛行中將會有用戶交互問題。 – Jason

0

你可以使用String.replace

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

反向你的循環索引。從value.length開始,然後使用x--而不是x++,直到達到0爲止。在此時您不需要j

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

不幸的是沒有工作,因爲我有其他驗證,以確保只有一個資本 – Jason

相關問題