关于JavaScript正则表达式

正则表达式:
用于匹配规律规则的表达式,正则表达式最初是科学家对人类神经系统的工作原理的早期研究,现在在编程语言中有广泛的应用。正则表通常被用来检索、替换那些符合某个模式(规则)的文本。
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

正则表达式的作用:

  1. 灵活性、逻辑性和功能性非常的强
  2. 可以迅速地用极简单的方式达到字符串的复杂控制
  3. 对于刚接触的人来说,比较晦涩难懂

方括号

表达式作用
[abc]查找方括号之间的任何字符
[^abc]查找任何不在方括号之间的字符
[0-9]查找任何从0至9的数字
[a-z]查找任何从小写a到小写z的字符
[A-Z]查找任何从大写A到大写Z的字符
[A-z]查找任何从大写A到小写z的字符

正则表达式的修饰符:

修饰符简介
i忽略大小写
g全局匹配
m多行匹配

预定义字符集:

字符作用
.(点)    查找单个字符,出了换行和行结束符
\w    查找单词字符
\W    查找非单词字符
\d    查找数字
\d    查找数字
\D    查找非数字字符
\s    查找空白字符
\S    查找非空白字符
\b    匹配单词边界
\B    匹配非单词边界
\n    查找换行符
\f    查找换页符
\r    查找回车符
\t    查找制表符

量词

量词作用
n+匹配任何包含至少一个n的字符串 ,多了不限制
n*匹配任何包含零个或多个n的字符串 (可有可无,多了不限制)
n?匹配任何包含零个或一个n的字符串 (可有可无,最多一次)
{n}必须出现n次
{n,}必须最少出现两次,多了不限制
{n,m}最少出现n次,最多出现m次
n$匹配任何结尾为n的字符串
^n匹配任何开头为n的字符串(还有一种取非用法:[^xxx] 除了xxx以外的)
?=n匹配任何其后紧接指定字符串n的字符串
?!n匹配任何其后没有紧接指定字符串n的字符串

正则表达式API的使用:

1.search的基本使用

// search基本使用
var str = "abcabcabc";
var n = str.search(/bc/i)
console.log(n);  //1  返回的是第一次匹配到的下标

var str = "abcabcabc";
var n = str.search("bc")  //会自动转换为正则处理
console.log(n);  //1  返回的是第一次匹配到的下标

2.replace的基本使用

// replace基本使用
var str = "aaabbbaaabbaaab";
var n = str.replace(/aaab/i,"pppp") //ppppbbaaabbaaab
var n = str.replace(/aaab/ig,"pppp") //ppppbbppppbpppp
console.log(n);

var str = "aaabbbaaabbaaab";
var n = str.replace("aaab","pppp"); //ppppbbaaabbaaab
console.log(n);

3.test的基本使用

// test方法基本使用:返回值是bool值
// ^表示开始第一位就是要匹配的内容
var reg = /^abc/g;
console.log(reg.test("csabcdfd")) //false
var reg = /abc/g;
console.log(reg.test("csabcdfd")) //true

var reg = /^1[^0124]\d{9}$/g; //判断手机号码
console.log(reg.test("18800001111")) //true

4.match的基本使用

// match方法基本使用
// [ad]指匹配所有ad,单独的a或者d都可以
var str = "abcderfgahd";
var reg = str.match(/[ad]/g); //[a,d]都会被匹配出来
console.log(reg); //结果是a,d

// [^ab]指匹配所有不是ad的
var str = "abcderfgahd";
var reg = str.match(/[^ad]/g); //不是[a,d]都会被匹配出来
console.log(reg); //结果是a,d

常用的正则表达式:

常用的正则作用
Email地址^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
域名[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
18位身份证号码^((\d{18})|([0-9x]{18})|([0-9X]{18}))$
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线)^[a-zA-Z][a-zA-Z0-9_]{4,15}$
密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线)^[a-zA-Z]\w{5,17}$
日期格式^\d{4}-\d{1,2}-\d{1,2}
中文字符[\u4e00-\u9fa5]
qq号[1-9][0-9]{4,}
手机号码

^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值