我有以下几点:

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

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

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


当前回答

为了做一个更好的搜索使用下面的代码,

var myFav   = "javascript";
var theList = "VB.NET, C#, PHP, Python, JavaScript, and Ruby";

// Check for matches with the plain vanilla indexOf() method:
alert( theList.indexOf( myFav ) );

// Now check for matches in lower-cased strings:
alert( theList.toLowerCase().indexOf( myFav.toLowerCase() ) );

在第一个alert()中,JavaScript返回"-1" -换句话说,indexOf()没有找到匹配:这只是因为"JavaScript"在第一个字符串中是小写的,在第二个字符串中是正确的大写。要使用indexOf()执行不区分大小写的搜索,可以将两个字符串都设置为大写或小写。这意味着,与第二个alert()一样,JavaScript将只检查所寻找的字符串是否出现,忽略大小写。

参考, http://freewebdesigntutorials.com/javaScriptTutorials/jsStringObject/indexOfMethod.htm

其他回答

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

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

或(不区分大小写):

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

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

以下是我的看法:

脚本:

var originalText = $("#textContainer").html()
$("#search").on('keyup', function () {
  $("#textContainer").html(originalText)
  var text = $("#textContainer").html()
  var val = $("#search").val()
  if(val=="") return;
  var matches = text.split(val)
  for(var i=0;i<matches.length-1;i++) {
    var ind =  matches[i].indexOf(val)
    var len = val.length
      matches[i] = matches[i] + "<span class='selected'>" + val + "</span>"
  }
  $("#textContainer").html(matches.join(""))

HTML:

<input type="text" id="search">
<div id="textContainer">
lorem ipsum is simply dummy text of the printing and typesetting industry. lorem ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of letraset sheets containing lorem ipsum passages, and more recently with desktop publishing software like Aldus pagemaker including versions of lorem ipsum.</div>

Codepen

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

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

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

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

你可以试试这个

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

这样更好~!

if (~referrer.toUpperCase().indexOf("RAL")) { 
    console.log("includes")
}