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