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. Node.js安装,多版本管理以及修改npm下载的镜像源

    注意:在操作之前建议先把整个文章看完,在决定要不要配置!!!!! 1.下载    地址:http://nodejs.cn/download/        根据系统对应版本下载文件 2.安装    下 ...

  2. learning java Cloneable

    class Address{ String Detail; public Address(String detail){ this.Detail = detail; } } class User im ...

  3. PHP CURL 错误码说明

    curl_setopt($ci, CURLOPT_HEADERFUNCTION, array($this, 'getHeader'));//一般不加 <?php return [ '1'=> ...

  4. 机器学习实战(1)- KNN

    KNN:k近邻算法-在训练样本中找到与待测样本距离相近的N个样本,并用这N个样本中所属概率最大的类别作为待测样本的类别. 算法步骤: 1.对训练中的样本数据的不同属性进行归一化处理. 2.计算待测样本 ...

  5. tensorflow serving 模型部署

    拉去tensorflow srving 镜像 docker pull tensorflow/serving:1.12.0 代码里新增tensorflow 配置代码 # 要指出输入,输出张量 #指定保存 ...

  6. package.json 版本号解释

    经常看到package.json中的各种版本号记录 比如 ~ ^ 等.其实是有个规范的.其遵循 semver. 具体的网站为:  http://semver.org/lang/zh-CN/

  7. Bootstrap selectpicker 下拉框多选获取选中value和多选获取文本值

    1.页面代码: 页面引入: bootstrap-select.min.css和 bootstrap-select.min.js. defaults-zh_CN.min.js文件,并初始化下拉选项框. ...

  8. 转 python多个命令同时执行.sh

    1.背景是 有三个脚本a.py, b.py, c.py 三个都是爬虫,里面都是while(true)方式运行的,不会主动运行结束. 每次启动他们,就需要: python a.py > logs/ ...

  9. useContext 让父子组件传值更简单(五)

    有了useState和useEffect已经可以实现大部分的业务逻辑了,但是React Hooks中还是有很多好用的Hooks函数的,比如useContext和useReducer. 在用类声明组件时 ...

  10. Python Django使用HttpResponse返回图片并显示

    views.py def read_img(request): """ : 读取图片 :param request: :return: """ ...