前端---js(自学笔记17)(正则表达式,正则语法,字符串与正则表达式、邮件正则)

正则表达式简介:

  • 正则表达式用于定义一些字符串的规则。
  •  计算机可以根据这些正则表达式,来检查一个字符串是否符合规则。或者将字符串符合规则的内容提取出来。
  • 创建正则表达式:语法:var 变量 =new RegExp("正则表达式","匹配模式"),使用typeof来检查正则表达对象,返回object。
  • var reg =new RegExp("a"),这个正则表达式中来检查一个字符串是否含有a
  • 正则表达式的方法,test()使用这个方法可以用来检查一个字符串是否符合正则表达式的规则。如果符合返回true,如果不符合返回false。
  • 在构造函数中可以传递一个匹配模式作为第二个参数。

正则语法:

使用字面量来创建正则表达式:语法:var 变量 = / 正则表达式 / 匹配模式

var reg = new RegExp("a","i");
reg =/a/i;
//这俩个表达式是一样结果
//这里的i是忽略大小写

 使用字面量的方式创建更加简单,使用构造函数创建更加灵活。

  • 创建一个正则表达式,检查一个字符串中是否有a或者b:a|b;|表示或者。
  • 创建一个正则表达式,检查一个字符串中是否有字母。[ ] 里的内容也是或的关系。[ab] == a | b; [a-z]任意小写字母;[A-Z]任意大写字母;[A-z]任意字母。
  • 检查一个字符串中是否含有abc或adc或aec-----reg= / a [ b d e ] c / ;
  • [^  ]:表示除了。

字符串和正则相关方法:

  1.  split()-----可以将一个字符串拆分为一个数组,方法中可以传递一个正则表达式作为参数,这样方法将会根据正则表达式去拆分字符串。这个方法即使不指定全局匹配,也会全部插分。如果这个字符串里又有数字又有字母,则用可以使用[A-z]任意字母进行拆分。                                                
  2. search()------可以搜索字符串中是否含有指定内容。如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到,则返回-1。它可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串。search只会查找第一个,即使设置全局匹配也没用。                                                  
  3. match()------可以根据正则表达式,从一个字符串中将符合条件的内容提取出来。默认情况下,match只会找到第一个符合要求的内容,找到以后就会停止检索。我们可以设置正则表达式为全局匹配模式,这样就会找到匹配的所有内容。可以为一个正则表达式设置多个匹配模式,且顺序无所谓。match( )会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果。                                                                                                                                                                                                                                                                                                                                                                                           
    str="1sd35f8d9S9X0";
    result = str.match(/[A-z]/ig);

     

  4. replace()----可以将字符串中指定内容替换为新的内容,                                                                                                   参数:1.被替换内容,可以接受一个正则表达式作为参数 。                                                                                                                2.新内容,                                                                                                                                                                                  默认只会替换第一个          

正则表达式语法: 

 量词:通过量词可以设置一个内容出现的次数,量词只对他前边的内容起作用。

  • {n}正好出现n次,{m,n}出现m到n次,{m,}m次以上。
  • +表示至少一个,相当于{1,}。
  • *表示0个或多个,相当于{0,}。
  • ?表示0个或1个,相当于{0,1}。
  • ^检查一个字符串是否以指定字符串开头,eg:/^a/;
  • $检查一个字符串是否以指定字符串结尾,eg:/a$/;
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
		//创建一个手机号规则
		//1.以1开头  2.以3-9  3,剩下位置任意数字
		var phone="14345678910";
		var phoneStr=/^1[3-9][0-9]{9}$/;
		console.log(phoneStr.test(phone));
		</script>
	</head>
	<body>
	</body>
</html>

结果为true;

  • 检查一个字符串是否含有  .  ----   . 表示任意字符
  • 在正则表达式中\作为转义字符
  • \.  表示 .
  • \\  表示  \
  • 注意:使用构造函数时,由于它的参数是一个字符串,而\是字符串中转义字符。如果要使用\则需要\\来代替
  • \w:表示任意字母、数字、_  [A-z 0-9]
  • \W:除了字母、数字、_  [^A-z 0-9]
  • \d:表示任意数字[0-9]
  • \D:表示除了数字[^0-9]
  • \s:表示空格
  • \S:除了空格
  • \b:表示单词边界
  • \B:表示除了边界

邮件正则: 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>邮箱正则</title>
		<script type="text/javascript">
		//电子邮箱
		// hello .nihao @ abc .com .cn 
		//任意字母数字下划线   .任意字母数字下划线 @ 任意字母数字  .任意字母(2-5位) .任意字母(2-5位)
		// \w{3,}             (\.\w+)*       @  [A-z0-9]+   (\.[A-z]{2,5}){1,2}
		var emailReg =/^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/;
		var email = "ddf.jeo8933@sa.com.df";
		console.log(emailReg.test(email));
		</script>
	</head>
	<body>
		
	</body>
</html>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值