正则表达式

常见正则:

邮件: \w+([-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*


1.隐式创建

var regExp = /正则表达式/[g][i][m] 
g 全局匹配
i表示ignoreCase insensitive
m mutiline多行匹配

全局匹配
在创建正则表达式对象时如果使用了“g”标识符或者设置它了的global属性值为ture时,那么新创建的正则表达式对象将使用模式对要将要匹配的字符串进行全局匹配。在全局匹配模式下可以对指定要查找的字符串执行多次匹配。每次匹配使用当前正则对象的lastIndex属性的值作为在目标字符串中开始查找的起始位置。lastIndex属性的初始值为0,找到匹配的项后lastIndex的值被重置为匹配内容的下一个字符在字符串中的位置索引,用来 标识下次执行匹配时开始查找的位置。如果找不到匹配的项lastIndex的值会被设置为0。当没有设置正则对象的全局匹配标志时lastIndex属性的值始终为0,每次执行匹配仅查找字符串中第一个匹配的项。

2.显示创建
var regExp = new RegExp("pattern", "attributes");
这两个参数相当于隐式创建中的两个参数 "pattern" = /pattern/, “attributes” = [g][i][m] 

当然RegExp的参数也可以只有pattern,这是只能有一个参数 new RegExp(/正则表达式/[g][i][m]

3.属性(注意区分大小写)
global RegExp 对象是否具有标志 g。
ignoreCase RegExp 对象是否具有标志 i。
lastIndex 一个整数,标示开始下一次匹配的字符位置。
multiline RegExp 对象是否具有标志 m。
source    正则表达式的源文本。

4.方法
compile 编译正则表达式为内部格式,使的查找匹配更快,如果是多次循环,或者多次使用尽量进行compile一下。
exec 检索字符串中指定的值。返回找到的值,并确定其位置。
返回的是一个数组,第0个是匹配的文本,后面的元素如果正则中有多个子表达式,依次存其值。
        所谓字表达式:/(\d)(\d)\2\1/g 第一个\d为第一个子表达式 第二个\d是第二个字表达式 (隐式创建 \d即可,不需要\\d)
        \1 反响引用可以用来引用第一个子表达式的内容 1234 不会匹配,1221匹配 /(\d)(\d)\2\1/g
        
        返回值的属性:index,input,leftContent,rightContent
        
test 仅仅为了确认是否能够检索到,检索字符串中指定的值。返回 true 或 false。

实际例子:
1.如果想在一个字符串中查找多个符合规则的内容,则必须用g全局模式,并且只能用exec来获取多个数据。exec方法会每次从对象的lastindex属性开始查找,直到字符串末尾为止。如果不是全局匹配,则只查询一次。
如下例子查找所有连续2个数组的内容:
    <script>
var regexp = new RegExp("[\\d\\d+, \w{4}]", "g"); /* 出现2次或以上的数字 */
var exp = /\d\d+/g; /* 和上面的定义等价 隐式创建不需要用\来标示\*/

target_str = "hello223e32f9";
while( (rslt = regexp.exec(target_str)) != null )
{
console.log(rslt);
console.log(rslt.index); //找到的该结果对应的位置
console.log(rslt.input); //匹配源也就是 target_str

console.log(regexp.lastIndex);
}
    </script>

5.正则对象可以用在字符串的下面方法中

search,match,replace,split

<完>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值