javascript---正则表达式

正则表达式

正则表达式是一个描述字符模式的对象,javascript使用RegExp类来表示正则表达式

//RegExp()创建对象
var a=new RegExp('s$')

//直接量语法创建对象
var a=/s$/

属性:
ignoreCase:返回一个布尔值,表示是否设置了i修饰符,该属性只读。
global:返回一个布尔值,表示是否设置了g修饰符,该属性只读。
multiline:返回一个布尔值,表示是否设置了m修饰符,该属性只读。
source:返回正则表达式的字符串形式(不包括反斜杠),该属性只读。
lastIndex:返回下一次开始搜索的位置。该属性可读写,只在设置了g修饰符时有意义。

正则的三种模式:
g:默认情况下,第一次匹配成功后,正则对象就停止向下匹配。g修饰符表示全局匹配,加上以后 ,正则对象将匹配全部符合条件的结果,主要用于搜索和替换。
i:默认情况下,正则对象区分字母的大小写,加上i修饰符后忽略大小写。
m:有时字符串的头部或尾部可能有换行符。默认情况下,正则对象会将换行符算入字符串的开头或结尾。m修饰符表示多行模式,加上以后,正则对象会忽略字符串头部或尾部的换行符,即^和$会忽略换行符


var c=/abc/igm;
console.log(c.ignoreCase);//true
console.log(c.global);//true
console.log(c.multiline);//true
console.log(c.source);//abc

正则表达式中的方法:

方法:
test():检索字符串中的指定值。返回值是true或false.语法:Objectname.test(str)
exec():检索字符串中的指定值。返回值是被找到的值,如果没有发现匹配,则返回null.语法:Objectname.exec(str)
compile():用于改变RegExp.可以改变检索模式,也可以添加或删除第二个参数。语法:Objectname.compile(str)

var a=/abc/
undefined
console.log(a.test('abc123'))
//true

console.log(a.exec('abc123'))
// ["abc", index: 0, input: "abc123", groups: undefined]


正则和字符串函数协同使用
match();语法 :str.match(Objectname)
match其实和exec类似。

区别:math如果需要匹配的正则表达式使用了g模式,则会一次性把所有的匹配结果都放在数组里。 
而exec()则不会,exec会依照g模式,把lastIndex往后推至下一次匹配开始的下标。

search();
能匹配到就返回第一次匹配到的下标;无匹配值返回-1.   语法 :str.search(Objectname)

手机正则表达式

var reg=/^1[3|4|5|6|8|9]\d{9}$/;
var str='13245215566'; 
var str1='144525685556';
var str2='12245455864';

reg.exec(str);//true
reg.exec(str1);//false
reg.exec(str2);//false

邮箱正则表达式

//纯数字、纯字母、字母数字混合、带点、带下划线、带连接线
var reg=/^[a-zA-Z\d]+[\.\_\-a-zA-Z\d]*\@[a-zA-Z\d]+(\.[a-zA-Z]{2,4})+$/;
var str='466da@qq.com';
reg.exec(str);//["466da@qq.com", ".com", index: 0, input: "466da@qq.com", groups: undefined]

屏蔽词案例

var str=['王八蛋','龟孙'];
var rep=str.join(')|(');// 王八蛋)|(龟孙
var join='('+rep+')';// (王八蛋)|(龟孙)
var reg=new RegExp(join,'ig');

function rp(str)
{
    return str.replace(reg,'*');//将字符串中正则匹配到的转换为*
}

var str1='你个王八蛋,小龟孙';
console.log(rp(str1));// '你个*,小*'

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值