如何比较字符串和多个字符串值的分析
在发展中,我们往往需要比较多的字符串值的字符串。直觉是利用| |反应符号连接多个值,例如:复制代码代码如下所示:
如果(string'banana'string | | = = = = = = 'pineapple){
果实着色=';
}
这对需求很有好处,但总觉得有点愚蠢,对扩展不友好,因为我们的水果品种更多:
复制代码代码如下所示:
如果(String = 'banana'string'pineapple= | | | | | | string'mongo'string = = = = = = 'lemon){
果实着色=';
}
上面的代码看起来不太好,让我们看看还有什么其他方法可以满足这个要求。
开关
复制代码代码如下所示:
开关(字符串){
case'banana:
case'pineapple:
case'mongo:
case'lemon:
果实着色=';
}
它看起来不错,但它总是占用更多的词汇,对于不喜欢打字的人来说,这不是一个好方法。
阵列
复制代码代码如下所示:
如果({ 'banana ','pineapple ','mongo ','lemon}。indexOf(字符串)> = 0){
果实着色=';
}
这是好的,但是有一个问题,下面的IE9浏览器不支持IndexOf方法,如果你想使用的阵列模式在IE <= 8环境比较字符串的值,或写一个IndexOf方法,或者介绍一些图书馆让浏览器兼容。
jQuery
jQuery提供了一个内部数组的方法
复制代码代码如下所示:
如果(美元。内部数组({ 'banana ','pineapple ','mongo ','lemon},字符串)> = 0){
果实着色=';
}
强调
下划线提供了一个包含方法。
复制代码代码如下所示:
如果(_。包含({ 'banana ','pineapple ','mongo ','lemon},字符串)){
果实着色=';
}
正则表达式
当然,我们有终极武器-正则表达式
复制代码代码如下所示:
(如果 / ^(香蕉菠萝芒果| | |柠檬)$ /。试验(字符串)){
果实着色=';
}