2012-04-28 10 views
0

要素の最後の文字が1文字または1文字の場合、次のjavascriptコードを使用して異なる数字を生成していますが、それ以外の文字は含まれません。私のミスはどこですか?if文で異なる要素を生成する

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; 
} 

答えて

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に変更してください。

+1

'1 == '1''なので厳密な比較(' === ')でない限り' 1'を使っても大丈夫ですが、おそらくは '' 1''を使う方が良いでしょう。 @Juhana。 – JJJ

+0

あなたが正しい。 '==='に変更されました。 – gdoron

+0

if文は、要素に文字が含まれている場合は常に実行されますが、要素の最後の文字が文字の場合にのみ実行されます。どうすればそれを達成できますか? –

関連する問題