js的正则表达式

正则表达式

两种方式定义正则表达式:

一种是字面量:
reg = / 正则表达式/匹配模式
一种是构造函数:
var reg = new RegExp(" “,” "); //两个参数包含两个字符串
第一个参数是需要约束的字符串(正则表达式),第二个参数(匹配模式)

匹配模式有
i表示忽略大小写
g表示在字符串中找出全部需要匹配的字符串

注意一下几个:

^表示前缀,
^还表示范围之外的字符

/^abcde$/固定这个值为abcde

基本用法:

\w-------------单词字符—[0-9][a-z][A-Z] _
\d--------------数字字符—[0-9]
\b--------------单词边界—找独立的一个单词\bchild\b
\s--------------空白字符串
\xxx------------八进制
\xdd-----------十六进制
\uxxxx--------unicode编码
\n--------------换行符

x+匹配包含至少一个x的字符串
x?0个或者1个
x* 匹配包含0个或多个x的字符串
x{n} n个x
x{a,b}含有a个至b个的
x{n,} 至少n个X

[a-z ]表示a至z的任意字母
[A-Z]表示A-Z的任意字母
[a-Z]表示任意的字母

许多元字符要求在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符"转义",即,将反斜杠字符\ 放在它们前面。下表列出了正则表达式中的特殊字符:

【 标记一个中括号表达式的开始。要匹配 [,请使用 [。
*匹配前面的子表达式零次或多次。若要匹配 * 字符 请 使用 *
. 匹配除换行符 \n 之外的任何单字符。要匹配 . 请使用 .

exec的用法

var  reg = /e/;
var  str = "_23yy2edcWlyyy3bnlyyy2ed";
 var obj = reg.exec(str);
document.getElementById("demo").innerHTML =  obj[0]+"看 "	+obj.index+"看"+obj.input;

split的用法
拆分的作用

	 	    var reg = /[0-9]/;
	        str = "ab8ca1b;"
	        var res  = str.split(reg); 	//用数字【0-9】拆分str字符串

            let num  = "1023005sssvxw6";
            let reg = num.split(/0+/);
            console.log(reg)    //以0 划分为字符数组

replace的用法

替换的作用
参数:
1、被替换的内容
2、新的内容

str.replace(‘a’/gi,"&&&") 表示只要str中有a,无论大小写,都用"&&&"替换str中的"a"或A

		    let reg = /0/g
            let num  = "1023005sssvxw6";
   	 		num.replace(reg,"a")		//全部把’0‘替换为“a”

电话号码的正则表达式

reg = /^1[3-9][0-9]{9}/

邮箱正则表达式

reg = /\S*@\S*\.\S*/

前后空格正则表达式

 reg = /^\s*|\s$/;

let tel =‘132 0803 3621’;
或者是短横线:
let tel =‘132-0803-3621’;
或是其他的连接字符。

然后空格或短横线的位置也不固定,例如可能是下面这样:
let tel =‘132 080 33621’;

请实现,无论变量tel使用什么字符分隔,无论分隔位置在哪里,都过滤成连续的11位数字,类似’13208033621’。

if(tel.match(/\d/g)&& tel.match(/\d/g).length == 11)
	console.log(tel.replace(/\D/g,''))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值