JS中search查找某些内容,正则表达式|查找分隔的任何项
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查找某些内容,正则表达式|查找分隔的任何项的更多相关文章
- JS中算法之检索算法(查找算法)
顺序查找 查找指定值 function seqSearch(arr, data) { for (var i = 0; i < arr.length; ++i) { if (arr[i] == d ...
- js中数组对象根据内容查找符合的第一个对象
今天在写一个混合开发版的app,其中一个功能是扫描快递单号,客户要求不能扫描重复的快递单号!所有就验证查出. 首先实现思路就是: 1.定义一个全局数组变量:var nubList = []; 2.进入 ...
- 【前端】js中数组对象根据内容查找符合的第一个对象
今天在写一个混合开发版的app,其中一个功能是扫描快递单号,客户要求不能扫描重复的快递单号!所有就验证查出. 首先实现思路就是: 1.定义一个全局数组变量:var nubList = []; 2.进入 ...
- js中object、字符串与正则表达式的方法
对象 1.object.hasOwnProperty(name) 检测object是否包含一个名为name的属性,那么hasOwnProperty方法返回true,但是不包括其原型上的属性. 正则表达 ...
- JS中关于数组的内容
前 言 LIUWE 在网站制作过程中,数组可以说是起着举足轻重的地位.今天就给大家介绍一下数组的一些相关内容.例如:如何声明一个数组和在网站制作过程中我们常用的一些数组的方法.介绍的不好还请多多 ...
- JS中的表单验证+正则表达式
表单验证+正则表达式 一.非空验证 trim:去空格(去掉前后的空格),任何字符串都可以用这个方法.写法为:if(v.trim().length==0),表示如果去掉空格后的字符串的长度为0. < ...
- JS中的match和test正则表达式验证密码或用户名的一种规则
match语法:字符串.match(正则表达式)有符合的:返回符合的数组无符合的:返回null test语法:正则表达式.test(字符串)有符合的:返回true无符合的 :返回false 该文的密码 ...
- 【转】js中15个常用的正则表达式+正则集合
1 用户名正则 //用户名正则,4到16位(字母,数字,下划线,减号) var uPattern = /^[a-zA-Z0-9_-]{4,16}$/; //输出 true console.log(uP ...
- js中几个正则表达式相关函数使用时g标志的作用
首先,javascript中涉及到正则表达式的函数总共有6个,可分为两种: 1.第一种是作为字符串对象的方法,即以 String.fun(); 形式调用,这里包括 split.search.match ...
随机推荐
- 比较ping,tracert和pathping等命令之间的关系
无论你是一个网络维护人员,还是正在学习TCP/IP协议,了解和掌握一些常用的网络测试命令将会有助于您更快地检测到网络故障所在,同时也会有助你您了解网络通信的内幕. 下面我们逐步介绍几个常用的命令: 1 ...
- 015——C#软件出现《未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0"》
(一)参考文献:https://zhidao.baidu.com/question/361243661437448812.html https://blog.csdn.net/yyx3214/arti ...
- 洛谷 P1082 同余方程 题解
每日一题 day31 打卡 Analysis 题目问的是满足 ax mod b = 1 的最小正整数 x.(a,b是正整数) 但是不能暴力枚举 x,会超时. 把问题转化一下.观察 ax mod b = ...
- mongoDB sh.status() too many chunks to print
too many chunks to print, use verbose if you want to force print 想要看到详细的信息则需要执行: mongos> sh.statu ...
- Win10 Subsystem Linux : Ubuntu 的root密码
安装完Ubuntu后忽然意识到没有设置root密码, 不知道密码自然就无法进入根用户下.Ubuntu的默认root密码是随机的, 即每次开机都有一个新的root密码.我们可以在终端输入命令 sudo ...
- 《挑战30天C++入门极限》C++类的继承与多重继承的访问控制
C++类的继承与多重继承的访问控制 在前面的练习中我们一直在使用public的继承方式,即共有继承方式,对于protected和private继承方式,即保护继承与私有继承方式我们并没有讨论. ...
- Oracle误删除数据恢复。Oracle删除后恢复数据
发现误删除时需要及时处理,速度要快,姿势要帅.晚了就恢复不了额 1.查询时间 以确保恢复到某个时间点 select SQL_TEXT, LAST_ACTIVE_TIME from v$sqlarea ...
- UOJ#121. 【NOI2013】向量内积 随机化算法,矩阵
原文链接www.cnblogs.com/zhouzhendong/UOJ121.html 前言 完蛋了我越来越菜了贺题都不会了. 题解 $O(n ^ 2 d) $ 暴力送 60 分. Bitset 优 ...
- Luogu5349 幂
题面 题解 首先考虑对于一个单项式怎么做,多项式就是单项式的答案的和. 就求一下\(\mathbf f(n) = n^k\)吧.(下面设\(t = \dfrac 1r\)) 设\(\mathbf S_ ...
- 7、vueJs基础知识07
UI组件库 element-ui和mint-ui 其实都是借鉴了bootstrap bootstrap: 由twitter 开源 简洁.大方 官网文档https://www.bootcss.com/ ...