2012-04-28 81 views
0

我用JavaScript代码来生成不同的数字,如果一个元素的最后一个字母是一个字母或1。但不知何故,整个其他时间执行是否包括字母或不遵循不同的元素。我的错误在哪里?生成与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; 
}​ 

请注意,您的变量命名的混乱。你最好改从elementelementId

+1

'1 ==“1'',因此使用'1'是确定的,只要它不是一个严格的比较(''===),虽然可以说是用'” 1''将是更好的做法。 – JJJ 2012-04-28 20:15:56

+0

@Juhana。你是对的。改为'==='。 – gdoron 2012-04-28 20:18:01

+0

现在,如果语句不断执行时的元件包括字母,但我希望它只是在元素的最后一个字符是字母来执行的。我怎样才能做到这一点? – 2012-04-28 20:25:15