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

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

如果是简单的一个字符串,可以用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>

图示:

JS中search查找某些内容,正则表达式|查找分隔的任何项的更多相关文章

  1. JS中算法之检索算法(查找算法)

    顺序查找 查找指定值 function seqSearch(arr, data) { for (var i = 0; i < arr.length; ++i) { if (arr[i] == d ...

  2. js中数组对象根据内容查找符合的第一个对象

    今天在写一个混合开发版的app,其中一个功能是扫描快递单号,客户要求不能扫描重复的快递单号!所有就验证查出. 首先实现思路就是: 1.定义一个全局数组变量:var nubList = []; 2.进入 ...

  3. 【前端】js中数组对象根据内容查找符合的第一个对象

    今天在写一个混合开发版的app,其中一个功能是扫描快递单号,客户要求不能扫描重复的快递单号!所有就验证查出. 首先实现思路就是: 1.定义一个全局数组变量:var nubList = []; 2.进入 ...

  4. js中object、字符串与正则表达式的方法

    对象 1.object.hasOwnProperty(name) 检测object是否包含一个名为name的属性,那么hasOwnProperty方法返回true,但是不包括其原型上的属性. 正则表达 ...

  5. JS中关于数组的内容

      前  言 LIUWE 在网站制作过程中,数组可以说是起着举足轻重的地位.今天就给大家介绍一下数组的一些相关内容.例如:如何声明一个数组和在网站制作过程中我们常用的一些数组的方法.介绍的不好还请多多 ...

  6. JS中的表单验证+正则表达式

    表单验证+正则表达式 一.非空验证 trim:去空格(去掉前后的空格),任何字符串都可以用这个方法.写法为:if(v.trim().length==0),表示如果去掉空格后的字符串的长度为0. < ...

  7. JS中的match和test正则表达式验证密码或用户名的一种规则

    match语法:字符串.match(正则表达式)有符合的:返回符合的数组无符合的:返回null test语法:正则表达式.test(字符串)有符合的:返回true无符合的 :返回false 该文的密码 ...

  8. 【转】js中15个常用的正则表达式+正则集合

    1 用户名正则 //用户名正则,4到16位(字母,数字,下划线,减号) var uPattern = /^[a-zA-Z0-9_-]{4,16}$/; //输出 true console.log(uP ...

  9. js中几个正则表达式相关函数使用时g标志的作用

    首先,javascript中涉及到正则表达式的函数总共有6个,可分为两种: 1.第一种是作为字符串对象的方法,即以 String.fun(); 形式调用,这里包括 split.search.match ...

随机推荐

  1. Kubernetes 学习6 Pod控制器应用进阶

    一.资源配置清单 1.自主式Pod资源 2.资源的清单格式,大多数清单格式都遵循如下条件: a.一级字段:apiVersion(group/version),kind,metadata(name,na ...

  2. C# 分割字符串 分隔符是字符串的情况

    string[] arr = System.Text.RegularExpressions.Regex.Split(str, "\r\n");

  3. Ubuntu shell系统的环境变量

    1.系统环境变量env命令查看 1)利用export命令导出环境变量 export PS1 导出PS1 添加路径 export PATH=$PATH:/home/daokr/myfile $ sudo ...

  4. Python学习之--列表

    一.列表表示: 用方括号([] )来表示列表,并用逗号来分隔其中的元素,索引从0开始,如下 二.修改元素 三.添加元素: 1. append 2. insert 四. 删除元素: 1. del 2. ...

  5. Processing 中玩增强现实 Argument Reality

    其实2009年Processing就能做AR了,只是我不知道而已~ 需要以下几个东西: 1.JMyron 2.GSVideo 3.nyar4psg 4.Picking 5.OBJLoader 或者大伙 ...

  6. RS译码的描述

    在描述Reed-Solomon码的译码时,需要确定错误多项式的系数,然后进行搜索.通常,错误多项式的最高次数与错误的符号数相同. 如: λ(X)= λ0+ λ1X+ ...+ λνXν. 设该RS码最 ...

  7. php读取邮件

    <?php header("Content-type: text/html; charset=utf-8"); class mail { private $server='' ...

  8. MySQL5.7 基础之二

    设计范式: 第一范式:字段是原子性 第二范式:存在可用主键 第三范式:任何表都不应该有依赖于其它表非主键的字段 创建数据库.设计数据表 字段:字段名.数据类型.约束(通过键来实现,而键其实可以当做索引 ...

  9. 史上最全java pdf精品书籍整理

    算法,多线程,spring,数据库,大数据,面试题等等.喜欢的小伙伴加群获取 QQ群号825199617 (非广告培训技术群,纯java知识交流,请自重)

  10. 根据字符串从资源中取出对应的资源ResourceManager.GetObject

    ResourceManager.GetObject 根据名称从资源中取出资源 需要:我有25张 五笔图片名称是a b c d ...y 这样组成的 每张图片名字只有一个名字 我想通过字符串a取出a这张 ...