JS中search查找某些内容,正则表达式|查找分隔的任何项

2021年09月15日 阅读数:3
这篇文章主要向大家介绍JS中search查找某些内容,正则表达式|查找分隔的任何项,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

JS中能够用indexOf来查找某个字符串里的某些内容的索引,也就是在字符串的位置。若是存在该字符串,会返回该字符串的索引,若是不存在会返回-1,能够经过某些内容的索引是否为-1判断是否存在该字符串。
可是这个不支持正则表达式,JS里还有一个方法search方法,也能够搜索到匹配内容的索引,该方法的参数但是正则表达式,也能够接受字符串做为参数。
格式是:字符串.search(正则表达式)javascript

该文还测试了正则表达式中的|,是查找分隔的任何项
|:查找分隔的任何项java

若是是简单的一个字符串,能够用indexOf,若是是复杂的,能够用正则。
例如该文测试中,要判断这个字符串中是否存在“客户端”或“客户的”,若是要用indexOf,那么须要用||或把各类状况链接起来,若是用正则,能够直接用一个正则表达式。
此外 ,测试中,用了前面测试的那个空格\s和量词*,表示该中间可有零个或一个或多个空格,均可匹配到,这种若是用indexOf就不可能获取全部状况,由于中间空格的个数是不肯定的。
如测试和图示中,七种状况都匹配到了。正则表达式

测试代码:浏览器

<a href="javascript:prn_p1()">点击获取</a><br>
<script language="javascript" type="text/javascript">   
        var LODOP; //声明为全局变量 
  function prn_p1(){
  var str1="官网样例是混合部署LodopFuncs.js里已经写好了判断。客户端是浏览器支持np插件,是32位浏览器,就会提示下载32位的Lodop插件:install_lodop32.exe";
console.log(str1.indexOf("客户端"));
console.log(str1.search(/客户端/));
console.log(str1.indexOf("客户的"));
console.log(str1.search(/客户的/));
if(str1.indexOf("客户端")!==-1)
{console.log("该字符串存在\'客户端\'");}
if(str1.indexOf("客户的")!==-1)
{console.log("该字符串存在\'客户的\'");}
else{console.log("该字符串不存在\'客户的\'");}
if(str1.indexOf("客户的")!==-1||str1.indexOf("客户端")!==-1)
{console.log("该字符串存在\'客户的\'或\'客户端\'");}
console.log(str1.search(/客户端|客户的/));
if(str1.search(/客户端|客户的/)!==-1)
{console.log("这是用search加正则判断的:该字符串存在\'客户的\'或\'客户端\'");}
console.log("------测试结果 indexOf不支持正则表达式----");
console.log(str1.indexOf(/客户的/));//错误写法,indexOf不支持正则参数
console.log(str1.indexOf(/客户端/));//错误写法,indexOf不支持正则参数
console.log("匹配多种状况");
var str2="selectedprinter,selected printer,selected  printer,Selected Printer,printer selected,printer  selected,打印机";//一个空格,无空格,两个空格,首字母大写,单词倒过来,单词倒过来三个空格,打印机,共7个。
//都是全局匹配,忽略大小写
//|分隔的,只要符合其中一种就会匹配到
console.log(str2.match(/(selected\s*printer|printer\s*selected|打印机)/ig));//匹配三个状况,中间有零个或一个或多个空格的两个单词组或'打印机'
  };
</script> 

图示:测试