0

如果元素的最后一个字母是字母或 1,我使用以下 javascript 代码生成不同的数字。但不知何故,无论它是否包含字母,else 的整个时间都会执行。我的错在哪里??

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

请注意,您的变量命名令人困惑。你最好从 更改elementelementId

于 2012-04-28T20:06:52.073 回答