使用if语句生成不同的元素

时间:2012-04-28 20:03:49

标签: javascript regex if-statement

如果元素的最后一个字母是字母或者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;
}

1 个答案:

答案 0 :(得分: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