0

要素の最後の文字が文字または1の場合、次のjavascriptコードを使用して異なる数値を生成しました。しかし、文字が含まれているかどうかに関係なく、他のすべての時間が実行されます。私の間違いはどこにありますか?

if (document.getElementById(element)!=null && element.charAt(element.length-1)==/^[a-zA-Z]*$/) {
    var element = element+1;
}
else if (element.charAt(element.length-1)==1) {
    var element = element;
    var lastletter = element.charAt(element.length-1);
    lastletter++;
    var element = element.substring(0, element.length-1)+lastletter;
}
else {
    var element = element;
}
4

1 に答える 1

1

match正規表現を使用した置換を検索するために使用します。

修正されたコード:

if (document.getElementById(element) && 
    element.match(/[A-z]$/) { // <========
    var element = element+1;
}
else if (element[element.length - 1]) === '1') {  // <========
    var element = element;
    var lastletter = element.charAt(element.length-1);
    lastletter++;
    var element = element.substring(0, element.length-1)+lastletter;
}
else {
    var element = element;
}​

変数の命名は紛らわしいことに注意してください。elementからに変更したほうがいいですelementId

于 2012-04-28T20:06:52.073 に答える