Javascript包含大小写不敏感

我有以下几点:

if (referrer.indexOf("Ral") == -1) { ... }

我喜欢做的是让Ral区分大小写的,所以它可以RAlrAl等,仍然匹配。

有没有办法说Ral必须不区分大小写?


referrer后添加.toLowerCase() 。 此方法将字符串转换为小写字符串。 然后,使用.indexOf()使用ral而不是Ral

if (referrer.toLowerCase().indexOf("ral") === -1) { 

使用正则表达式也可以实现同样的效果(当您想要针对动态模式进行测试时特别有用):

if (!/Ral/i.test(referrer)) {
   //    ^i = Ignore case flag for RegExp

另一种选择是使用搜索方法如下:

if (referrer.search(new RegExp("Ral", "i")) == -1) { ...

它看起来更优雅,然后将整个字符串转换为小写字母,并且可能更高效。
使用toLowerCase() ,代码在字符串上有两个传递,一个传递在整个字符串上将其转换为小写,另一个传递给查找所需的索引。
使用RegExp ,代码只有一个字符串,它看起来与所需的索引匹配。

因此,对于长字符串,我建议使用RegExp版本(我想对于短字符串,这种效率来自于创建RegExp对象的帐户)


使用RegExp:

if (!/ral/i.test(referrer)) {
    ...
}

或者,使用.toLowerCase()

if (referrer.toLowerCase().indexOf("ral") == -1)
链接地址: http://www.djcxy.com/p/75189.html

上一篇: Javascript contains case insensitive

下一篇: How to sort strings in JavaScript