我有以下几点:

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

我喜欢做的是使Ral不区分大小写,这样它可以是Ral, Ral等,仍然匹配。

有办法说拉尔必须不区分大小写吗?


当前回答

你可以试试这个

str = "哇,太酷了" searchStr = "CoOl" console.log (str.toLowerCase()其中包括(searchStr.toLowerCase ()))

其他回答

使用RegExp:

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

或者,使用.toLowerCase():

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

在ES2016中,你还可以使用稍微更好/更简单/更优雅的方法(区分大小写):

if (referrer.includes("Ral")) { ... }

或(不区分大小写):

if (referrer.toLowerCase().includes(someString.toLowerCase())) { ... }

下面是.indexOf()和.includes()的比较: https://dev.to/adroitcoder/includes-vs-indexof-in-javascript

如果referrer是一个数组,则可以使用findIndex()

 if(referrer.findIndex(item => 'ral' === item.toLowerCase()) == -1) {...}

在referrer后添加. touppercase()。此方法将字符串转换为大写字符串。然后,使用. indexof()使用RAL代替RAL。

if (referrer.toUpperCase().indexOf("RAL") === -1) { 

使用正则表达式也可以达到同样的效果(当你想测试动态模式时特别有用):

if (!/Ral/i.test(referrer)) {
   //    ^i = Ignore case flag for RegExp
if (referrer.toUpperCase().indexOf("RAL") == -1) { ...