正则表达式

正则表达式
1.正则:正确的规则

  • 什么是正则表达式:字符的规范格式
      正则表达式(regular expression)是一个描述字符规则的对象。如:只能出现字母,只能出现数字,前三个必须是数字等。
      前端往往有大量的表单数据校验的工作,采用正则表达式会使得数据校验的工作量大大减轻,如邮箱验证,手机号码,等等。比起用字符串的函数来判断简单,易用。

正则表达式的组成:普通字符 或者 特殊字符
定义:
1.字面量
var reg = /普通字符或者特殊字符/修饰符
reg.test(“目标字符串”):判断目标字符串是否符合正则reg对象格式
2.构造方法
i忽略大小写
var reg = new RegExp(“a”,“i”);
console.log(reg.test(“a”));
var reg = new RegExp("\d");
console.log(reg.test(“1”));
正则中的特殊字符:
a单个字符:
^:正则开始
$ : 正则结束
. : 元字符, 表示任意一个字符
. : 表示转义字符 .表示.
+: 表示其前面紧挨着的字符至少出现1次 等价{1,}
* :表示其前面出现的字符至少出现过0次 等价{0,}
?: 表示其前面出现的字符至少出现过0次,至多1次 等价{0,1}
| : 表示或者
b组合字符:
\d : 0-9之间的任意一个数字 \d只占一个位置
\D : 除了\d
\w : 数字,字母 ,下划线 0-9 a-z A-Z _
\W : 除了\w
\s : 空格或者空白等
\S : 除了\s

    c括号:
   {m,n}表示括号前面紧挨着的字符至少出现m个,至多出现n个 : 以b开头  至少3个a  至多5个a       /^ba{3,5}$/
{m}表示括号前面紧挨着的字符只能出现m个              
{m,}表示括号前面紧挨着的字符至少出现m个
[] 表示括号内的任意一个字符
[wd3h]
[a-z]表示任意一个小写字母 [a-zA-Z0-9]
[^  ]表示非括号内的任意一个字符
()一般与或连用 表示优先级
[\u4e00-\u9fa5] 任意一个中文字符

正则中的相关方法及属性
正则中的相关方法:
test() 检验一个字符串是否符合某一个正则规范,如果符合返回true,否则返回false
用法: reg.test(str)

exec 根据正则表达式查找,结果满足返回一个长度为1的数组(数组只有一个值)
用法:reg.exec(str)


var reg = /\d/;///\d/g
    var str = "123456789";
    console.log(reg.exec(str)[0]);
 

lastIndex :这个属性记录的就是下一次捕获从哪个索引开始。

 var reg = /\d/g;
    var str = "92a345a678a9";

    console.log(reg.exec(str));
    console.log(reg.lastIndex);
  

g---------------全局
i---------------忽略字母大小写

正则中相关字符串的方法:
search方法 返回与正则表达式查找内容匹配的第一个子字符串的位置
用法:str.search(reg)

说明:如果找到则返回子字符至开始处的偏移位,否则返回-1。


    var r, re; // 声明变量。
    var s = "The rain in Spain falls mainly in the plain.";
    re = /falls/i; // 创建正则表达式模式。
    re2 = /tom/i;
    r = s.search(re); // 查找字符串。
    r2 = s.search(re2);
    document.write("r:" + r + ";r2:" + r2);// 返回 Boolean 结果。

match 方法
使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回。
str.match(rgExp)

 var reg = /\d+/g;
    var str = "123a4356a987";
    console.log(str.match(reg));

replace 方法
返回根据正则表达式进行文字替换后的字符串的复制。
stringObj.replace(rgExp, replaceText)

 var reg = /yangyang/g;
    var str = "yangyang的隔壁也住着yangyang";
    console.log(str.replace(reg,"hello"));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值