Javascript 压缩If条件
有没有这样的方法来压缩Javascript 压缩If条件,javascript,Javascript,有没有这样的方法来压缩if语句中的条件块? 从代码中可以看出,itemKey是一个变量。我将第一个字母设置为小写,以便将其与另一个变量letter匹配。下面的工作非常完美,但我想清理一下。我能把&后面的所有|拉到一起,把所有的数字0-9都包含进去吗?这是充当字符串,而不是整数 firstLetterLower = itemKey.charAt(0).toLowerCase(); if(firstLetterLower==letter || ( letter=='number' &&
if
语句中的条件块?
从代码中可以看出,itemKey
是一个变量。我将第一个字母设置为小写,以便将其与另一个变量letter
匹配。下面的工作非常完美,但我想清理一下。我能把&
后面的所有|
拉到一起,把所有的数字0-9都包含进去吗?这是充当字符串
,而不是整数
firstLetterLower = itemKey.charAt(0).toLowerCase();
if(firstLetterLower==letter || (
letter=='number' && (
firstLetterLower=='0' || firstLetterLower=='1' || firstLetterLower=='2' ||
firstLetterLower=='3' || firstLetterLower=='4' || firstLetterLower=='5' ||
firstLetterLower=='6' || firstLetterLower=='7' || firstLetterLower=='8' ||
firstLetterLower=='9'
))) {
您可以将这些测试替换为
firstLetterLower.match(/[0-9]/)
或
(firstLetterLower>=0&&firstLetterLower您可以将这些测试替换为
firstLetterLower.match(/[0-9]/)
或
(firstLetterLower>=0&&firstLetterLower尝试使用正则表达式:
firstLetterLower.match(/^[0-9]/)
尝试使用正则表达式:
firstLetterLower.match(/^[0-9]/)
使用正则表达式,可以执行以下操作:
firstLetterLower = itemKey.charAt(0).toLowerCase();
if(firstLetterLower == letter || firstLetterLower.match(/^[0-9]$/) ){
}
这将检查指定的字母以及0和9之间的匹配
但是,如果您不想使用正则表达式(可能会有开销?在这里,使用1个非常简单的正则表达式并不明显),您可以执行以下操作:
firstLetterLower = itemKey.charAt(0).toLowerCase();
if(firstLetterLower == letter || (firstLetterLower >= 0 && firstLetterLower <= 9)){
}
firstLetterLower=itemKey.charAt(0.toLowerCase();
如果使用正则表达式(firstLetterLower==letter | |(firstLetterLower>=0&&firstLetterLower),则可以执行以下操作:
firstLetterLower = itemKey.charAt(0).toLowerCase();
if(firstLetterLower == letter || firstLetterLower.match(/^[0-9]$/) ){
}
这将检查指定的字母以及0和9之间的匹配
但是,如果您不想使用正则表达式(可能会有开销?在这里,使用1个非常简单的正则表达式并不明显),您可以执行以下操作:
firstLetterLower = itemKey.charAt(0).toLowerCase();
if(firstLetterLower == letter || (firstLetterLower >= 0 && firstLetterLower <= 9)){
}
firstLetterLower=itemKey.charAt(0.toLowerCase();
如果(firstLetterLower==letter | | |)(firstLetterLower>=0&&firstLetterLower您可以使用正则表达式和您所拥有的内容的组合。我可能会将其放入函数中:
function isMatch(itemKey, letter) {
firstLetterLower = itemKey.charAt(0).toLowerCase();
if (firstLetterLower == letter) return true;
if (letter == 'number'){
if (firstLetterLower.match(/[0-9]/))
return true;
}
return false;
}
alert("1:" + isMatch('item', 'i'));
alert("2:" +isMatch('1234567', 'number'));
alert("3:" +isMatch('abc','number'));
alert("4:" +isMatch('123','a'));
您可以使用正则表达式和您拥有的东西的组合。我可能会将其放入函数中:
function isMatch(itemKey, letter) {
firstLetterLower = itemKey.charAt(0).toLowerCase();
if (firstLetterLower == letter) return true;
if (letter == 'number'){
if (firstLetterLower.match(/[0-9]/))
return true;
}
return false;
}
alert("1:" + isMatch('item', 'i'));
alert("2:" +isMatch('1234567', 'number'));
alert("3:" +isMatch('abc','number'));
alert("4:" +isMatch('123','a'));
你考虑过正则表达式吗?(firstLetterLower>='0'&&firstLetterLower>你考虑过正则表达式吗?(firstLetterLower>='0'&&firstLetterLower)谢谢,正则表达式是我要找的。谢谢,正则表达式是我要找的。正是我要找的。谢谢