js-正则表达式

RegExp 对象

RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。

声明方式 两种

	var reg = /pattern/;
	reg = new RegExp("内容");
	
	reg = /pattern/attributes;
	reg = new RegExp("pattern", "attributes");

参数:
参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。

参数 attributes 是一个可选的字符串,包含属性 “g”、“i” 和 “m”,分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。

正则符号

简写     完整写法        	语意
1.  .    [^\n\r]         	除了换行和回车之外的任意字符
2.  \d   [0-9]           	数字字符
3.  \D   [^0-9]             非数字字符
4.  \s   [\t\n\xOB\f\r]     空白字符
5.  \S   [^\t\n\xOB\f\r] 	非空白字符
6.  \w   [a-zA-Z_0-9]       单词字符
7.  \W   [^a-zA-Z_0-9]      非单词字符

:括号内,前面加个元字符^进行取反,表示匹配不能为括号里面的字符。
例:console.log(/[^abc]/.test(‘a’)); 答案是false

特殊字符

\t 	  	制表符
\n   	换行符
\r 		回车符
\f   	换页符
\b   	与回退字符
\v   	垂直制表符
\o  	空字符
\xxx	查找以八进制数 xxx 规定的字符。
\xdd	查找以十六进制数 dd 规定的字符。
\uxxxx	查找以十六进制数 xxxx 规定的 Unicode 字符。

量词

量词	描述
n+		匹配任何包含至少一个 n 的字符串。
n*		匹配任何包含零个或多个 n 的字符串。
n?		匹配任何包含零个或一个 n 的字符串。
n{X}	匹配包含 X 个 n 的序列的字符串。
n{X,Y}	匹配包含 XY 个 n 的序列的字符串。
n{X,}	匹配包含至少 X 个 n 的序列的字符串。
n$		匹配任何结尾为 n 的字符串。
^n		匹配任何开头为 n 的字符串。
?=n		匹配任何其后紧接指定字符串 n 的字符串。
?!n		匹配任何其后没有紧接指定字符串 n 的字符串。

正则说明

1. 如果匹配的东西过多,但类型又是一致的,这种情况下,可以在中间加一个-表示范围eg: [a-z]表示a到之间;
2. ^ 会匹配行或者字符串的起始位置
3. $ 会匹配行或字符串的结尾位置

test

RegExp的方法,匹配成功返回true,否则返回false。

	var reg = /a/;
	var str = "sasaad";
	console.log(reg.test(str));

match

这是String的方法,会返回匹配到的字符串,并将其作为一个数组返回。

	var reg = /a+/;
	var str = "sasaad";
	console.log(str.match(reg)); //a

实际例子

 // 1. 验证姓名 只能是汉字    并且字数 2-3个之间
    var reg =/[\u4e00-\u9fa5]{2,3}/;
	var str = "周";
	console.log(reg.test(str));

    // 2. 验证QQ(5到11位 开头不能是0)

    var reg = /^[1-9][0-9]{4,10}$/;
	var str = 01234;
	console.log(reg.test(str));
            

    // 3. 验证手机号(11位数字 并且有号段)
    var reg = /^[1][3,4,5,7,8][0-9]{9}$/;
     var str = 15072788147;
     console.log(reg.test(str));

    // 4. 至少输入n个以上的数字
    var reg = /^\d{n,}$/;
	var str = 512346;
	console.log(reg.test(str));

    // 5. 只能由大写英文字母组成
    var reg = /^[A-Z]+$/;
	var str = "AVVB";
	console.log(reg.test(str));

    // 6. 只能由英文字母和数字组成
    var reg = /^[A-z0-9]+$/;
	var str = "sadaD55";
	console.log(reg.test(str));

    // 7. 匹配身份证号
    var reg = /^[0-9x]{18}$/;
	var str = "15151515151515151x";
	console.log(reg.test(str));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值