正则表达式(简单易懂篇)
什么是正则表达式:
简单的说,正则表达式是一种可以用于模式匹配和替换的强大工具。在几乎所有的基于UNIX/LINUX系统的软件工具中找到正则表达式的痕迹,例如:Perl或PHP脚本语言。此外,JavaScript这种客户端的脚本语言也提供了对正则表达式的支持,现在正则表达式已经成为了一个通用的概念和工具,被各类技术人员所广泛使用。
正则表达式基本语法
一、创建JavaScript正则(RegExp)对象
varreg=RegExp('s'); varreg=/s/;//简写方式推荐使用不能为空不然会以为是注释
二、预定义符
开始前先看一些符号表达的意思才好帮助你对下面的例子可以迅速的理解
\s:空格
\S:非空格
\d:数字
\D:非数字
\w:字符
\W:非字符
\i:不区分大小写
\g:全局匹配(一般正则找到第一个符合条件的就会停止,在后面加上这个符合就会告诉正则继续往下不要停)
|:或
.:任意字符
\b:独立的部分(起始,结束,空格)
\B:非独立的部分
\n:重复的某个子项,例如
varreg=/(a)(b)(c)\1/;//=>abca重复了a子项
如需使用真正的符号例如“.”,只需添加\即可,如\.
三、常用的几个方法
1.test()=>在字符串中查找符合正则指定的内容,若找到返回true,否则返回false
//用法:正则.test(字符串) vardata='123456789987654321'; varreg=/\d/;//\d这里代表数字 if(reg.test(str)){ console.log('内容为数字'); console.log(reg.test(str))//返回true }
2.match()=>在字符串中查询符合正则指定的内容,成功则返回内容(数组格式),否则返回null
//用法:字符串.match(正则) vardata='123456mple789Mple875654'; varreg=/mple/gi; console.log(data.match(reg));//mple,Mple
3.search()=>在字符串中查询符合正则指定的内容,成功找到则返回当前内容的位置从0开始(如不止一个内容符合正则条件,则返回第一个找到的位置),如果没找到则返回-1
//用法:字符串.search(正则) vardata='1234mple56789Mple987mple654321'; varreg=/mple/gi; console.log(data.search(reg));//4
4.replace()=>在字符串中查询符合正则指定的内容,查找到则替换对应内容并返回替换后的内容
//用法:字符串.replace(正则,新的字符串/回调函数) vardata='啦啦啦~一大堆啦啦啦'; varreg=/啦/g; varrep=data.replace(reg,function(data){ varne=''; for(vari=0;i<data.length;i++){ ne+='*'; } returnne; }); console.log(rep);
5.exec()=>查找并返回当前的匹配结果,以数组的形式返回
//用法:正则.exec(字符串) vardata="1234mple5678mple99876mple543Mple21"; varreg=/mple/ig; vars=reg.exec(data) console.log(s.index);//4
6.split()=正则分割字符串
7.sort():数组中的排序方法,按照ACALL码进行排序
8.join():数组中的方法,把数组转换为字符串
vardata='4445554654123156489151321456'; vararr=data.split(''); data=arr.sort().join(''); console.log(data);
四、常用量词
{n,m}:至少出现n次,最多m次
{n,}:至少n次
*:任意次相当于{0,}
?:零次或一次相当于{0,1}
+:查找的结果至少出现一次或任意次{1,}
{n}:正好n次
最后来个例子理解理解,判断QQ号
HTML
<inputclass="qq"type="text"placeholder="请输入QQ号"> <buttontype="button"class="sub">检测</button>
正则
//先来看看我们日常登录的QQ号有哪些性质 1首位肯定不是为0 2必须是5-10位的数字 varoInput=document.querySelector('.qq'); varoSub=document.querySelector('.sub'); varreg=/^[1-9]\d{4,9}$/; //为了防止最后几位数出现字母abc之类的情况,所以需要添加$进行尾数限制 //所以最后的逻辑是这样的,首位是0-9,接着是4-9位的数字类型。 oSub.onclick=function(){ if(reg.test(oInput.value)){ alert('检测成功'); }else{ alert('账户不存在'); } };
以上所述是小编给大家介绍的正则表达式(简单易懂篇),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!