正则表达式

RegExp 对象:表示正则表达式,它是对字符串执行模式匹配的强大工具。
  • 测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证
  • 替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字
  • 根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字
创建一个正则表达式
  1. 第一种方法: var reg = /pattern/;
  2. 第二种方法: var reg = new RegExp(‘pattern’);
    正则表达式的exec方法简介
exec方法
    reg.exec(str);
    var reg = /test/;   
    var str = 'testString';
    var result = reg.exec(str);   //输出test
一片两片三四片,落尽正则全不见
  • c{n}:{1}表示一个的意思。 /c{1}/只能匹配一个c。 /c{2}/则会匹配两个连续的c。 以此类推, /c{n}/则会匹配n个连续的c。
  • c{m,n}: c{3,4}的意思是,连续的3个c或者4个c。
  • c{n,}:表示n个以上的c。
  • *:表示0次或者多次,等同于{0,}
  • +:表示一次或者多次,等同于{1,},
  • ?:表示0次或者1次,等同于{0,1},
  • 贪心(贪婪)
  • 非贪心(非贪婪):如果我们希望正则尽量少地匹配字符,那么就可以在表示数字的符号后面加上一个?
  • {n,}?, 匹配n个
  • *?, 匹配0个
  • +?, 匹配1个、
  • ?? 匹配0个,
  • {m,n}? 匹配m个
/^开头,结尾$/
  ^  表示只匹配字符串的开头。
  $  则只匹配字符串结尾的字符 

点.

  • .:会匹配字符串中除了换行符\n之外的所有字符
reg = /./;
str='cainiao';
execReg(reg,str);         //返回c
二选一,正则表达式中的或
  • | b|c表示,匹配b或者c。
    括号
  • () 括号 reg = /^(b|c).+/; 如果字符串的开头是b或者c,那么匹配开头的b或者c以及其后的 所有的非换行字符。
[abc]字符集合
  • 表示a或者b或者c中的任意一个字符
  • [a-z],[A-Z],[0-9],分别表示小写字母,大写字母,数字
         reg = /^[a-zA-Z][a-zA-Z0-9_]+/;  

开头必须是英文字母,后面可以是英文字母或者数字以及下划线。

反字符集合[^abc]
  • [^abc] reg = /[^abc]/;第一个非abc的字符
边界与非边界
  • \b 表示的边界:只有字符串的开头和结尾才算数
  • \B 表示非边界:
数字与非数字
  • \d 表示数字的意思
  • \D 表示数字的意思
空白
  • \f匹配换页符,\n匹配换行符,\r匹配回车,\t匹配制表符,\v匹配垂直制表符。
  • \s 匹配单个空格,等同于[\f\n\r\t\v]
  • \S 表示非空格字符。
单词字符
  • \w 表示单词字符,等同于字符集合[a-zA-Z0-9_]
  • \W 表示非单词字符
反向引用
  • 形式如下:/(子正则表达式)\1/
括号(2)
  • 不记录子正则表达式的匹配结果 。使用形如(?:pattern)的正则就可以避免保存括号内的匹配结果
  • 正向预查 形式:(?=pattern) 所谓正向预查,意思就是:要匹配的字符串,后面必须紧跟着pattern!
reg = /blue(?=idea)/;
str='blueidea';
execReg(reg,str);//匹配到 ,而不是blueidea。
  • ?! 形式(?!pattern)和?=恰好相反,要求字符串的后面不能紧跟着某个pattern,
    匹配元字符:
  • *,+,?,之类的符号,它们在正则表达式中都有一定的特殊含义
reg = /c\*/;
str='c*';
execReg(reg,str);//返回c*
正则表达式的修饰符
  • 全局匹配,修饰符g
  • 形式:/pattern/g、例子:reg = /b/g;
  • 不区分大小写,修饰符i、形式:/pattern/i
  • 行首行尾,修饰符m
var reg = /^b/m;
var str = 'test\nbbs';  //匹配到b,因为加了m修饰符之后,^已经表示行首,由于bbs在字符串第二行的行首,所以可以成功地匹配。
exec方法详解
  • exec方法的返回值:exec方法返回的其实并不是匹配结果字符串,而是一个对象,
  • exec方法对正则表达式的更新:
test方法
  • test方法仅仅检查是否能够匹配str,并且返回布尔值以表示是否成功。
  • reg.test(str)
使用字符串的方法执行正则表达式
  • match方法、形式:str.match(reg);
  • replace方法、形式:str. replace (reg,’new str’);将str字符串中匹配reg的部分用’’new str”部分代码,值得注意的是原字符串并不会被修改,而是作为返回值被返回

  • 颠倒空格前后两个单词的顺序。

var reg = /(\w+)\s(\w+)/;
var str = 'cainiao gaoshou';
var newStr = str.replace(reg,'$2 $1');
document.write(newStr);
search方法和split方法
str.search(reg);    、search返回正则表达式第一次匹配的位置。
str.split(reg,’seprator’)、split返回分割后的数组,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值