正则表达式

正则表达式:

 什么是正则表达式?它的作用是什么?

 ---正则表达式就是拿一些通配符去制定一个字符串的格式(规则)

 它主要用来去验证一个字符串是否符合我们约定的格式,

 还有一个功能就是查询符合规则的字符串。

 

正则表达式的好处?

  可以减少很多逻辑判断,减少了代码量,比较灵活。

 

如何创建正则表达式对象?

 1) var reg=/规则/参数;

 2) var reg = new RegExp("规则","参数");

 

规则有很多特定的符号组成。我们只要灵活的使用这些符号就能组成很复杂的字符串规则。

  常用的通配符

   

      .    可以匹配任何字符****

     \d    匹配0-9的所有数字****

     \D    匹配非数字

     \s    匹配所有空白字符,包括空格、制表符、换行符、回车符等****

     \S    匹配所有非空白字符

     \w    匹配所有的单词字符,包括0-9数字、26个英文字母和下划线****

     \W    匹配所有的非单词字符

     \b    匹配单词边界 :单词前后必须有一个非单词字符****

     \B    匹配非单词边界

 

 

 

 

[abc]    查找方括号之间的任何字符。--代表一个字符

[^abc]    查找任何不在方括号之间的字符。

[0-9]    查找任何从 0 至 9 的数字。==\d---代表一个数字

[a-z]    查找任何从小写 a 到小写 z 的字符。

[A-Z]    查找任何从大写 A 到大写 Z 的字符。

[A-z]    查找任何从大写 A 到小写 z 的字符。---不仅仅是52个字母,当中还有一些符号,比如]

(red|blue|green)查找任何指定的选项

 

 

正则表达式量词

 

n+    匹配任何包含至少一个 n 的字符串。-----  1到多

n*    匹配任何包含零个或多个 n 的字符串-----  0到多

n?    匹配任何包含零个或一个 n 的字符串-----  0或1

n{X}    匹配包含 X 个 n 的序列的字符串。------  指定具体的个数

n{X,Y}    匹配包含 X 或 Y 个 n 的序列的字符串。---指定满足区间的个数

n{X,}    匹配包含至少 X 个 n 的序列的字符串。---指定大于等于X的个数

n$    匹配任何结尾为 n 的字符串。---以指定的字符结尾

^n    匹配任何开头为 n 的字符串。---移指定的字符开头

 

 

正则表达式修饰符

 

i    执行对大小写不敏感的匹配。  ---忽略大小写

g    执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。---全局查找

m    执行多行匹配。--多行查找,换行以后也认为是新的一行。

 

 

 

表达式

(ab)

eg:

验证电子邮件的格式,要求:

  1、@符号前面必须由字母数字下划线组成,且字符数必须大于等于5个

  2、@后面必须由数字或字母组成,且字符数必须大于等于3个

  3、必须有一个. 点后面以com或者cn 或者com.cn或者org结尾


     

 var email=window.prompt("请输入合法的电子邮件",'');

 //var reg=/^\w{5,}@([a-z]|[A-Z]|\d){3,}\.(com|com.cn|cn|org)$/;

 var reg=/^[0-9A-Za-z_]{5,}@[0-9A-Za-z]{3,}\.(com|com\.cn|cn|org)$/;

 document.write(reg.test(email));

 

   验证省份证号码,18位数字,最后一位可能是数字也可能是X

var cardNo=window.prompt("请输入省份证号",'');
var reg=/^\d{17}(\d|X)$/;
document.write(reg.test(cardNo));

 

 

    验证这样的格式:一个四位数XXXX,第一位和最后一位一样,第二位和第三位一样(1221);

    (引用表达式的概念)语法:\表达式的位置

 

     正则表达式中的表达式是()     

 var reg=/^(\d)(\d)\1\2$/;

 var str="1212";

 document.write(reg.test(str));

 

 

    家用电话号码验证:必须以0开头,后面跟两个数字-后面8个数字

 

     验证url s可有可无,有的话只有一个

      https://www.sina.com.cn/aa/bb/cc/index.html 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_陌默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值