正则总结

一、
<input onkeyup="value=value.replace(/[\W]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text1" NAME="Text1">

二、

使用 exec()
exec() 方法是一个正则表达式方法。exec() 方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
实例 1
/e/.exec("The best things in life are free!");
字符串中含有 "e",所以该实例输出为:e

var patt = /e/;
patt.test("The best things in life are free!");

根据字符串生成正则表达式
let str = ^[a-z]{1,3}$
let reg = new RegExp(str,'g')
三、

"ab*":表示一个字符串有一个a后面跟着零个或若干个b。("a", "ab", "abbb",……);

"ab+":表示一个字符串有一个a后面跟着至少一个b或者更多;

"ab?":表示一个字符串有一个a后面跟着零个或者一个b;

"a?b+$":表示在字符串的末尾有零个或一个a跟着一个或几个b。

'.'可以替代任何字符:

"a.[0-9]":表示一个字符串有一个"a"后面跟着一个任意字符和一个数字;

"^.{3}$":表示有任意三个字符的字符串(长度为3个字符)

",[a-zA-Z0-9]$":表示一个字符串以一个逗号后面跟着一个字母或数字结束。

你也可以在方括号里用''表示不希望出现的字符,''应在方括号里的第一位。

(如:"%[^a-zA-Z]%"表示两个百分号中不应该出现字母)


//校验是否全由数字组成

/^[0-9]{1,20}$/
^ 表示打头的字符要匹配紧跟^后面的规则

表示打头的字符要匹配紧靠前面的规则

[ ] 中的内容是可选字符集

[0-9] 表示要求字符范围在0-9之间

{1,20}表示数字字符串长度合法为1到20,即为[0-9]中的字符出现次数的范围是1到20次。
/^ 和 $/成对使用应该是表示要求整个字符串完全匹配定义的规则,而不是只匹配字符串中的一个子串。


//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串

/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/
^[a-zA-Z]{1} 表示第一个字符要求是字母。

([a-zA-Z0-9]|[.]){4,19} 表示从第二位开始(因为它紧跟在上个表达式后面)的一个长度为4到9位的字符串,它要求是由大小写字母、数字或者特殊字符集[.]组成。


//校验用户姓名:只能输入1-30个以字母开头的字串
/^[a-zA-Z]{1,30}$/


//校验密码:只能输入6-20个字母、数字、下划线
/^(\w){6,20}$/
\w:用于匹配字母,数字或下划线字符
\d: 匹配单个数字,等价于[0-9]

[^范围] 匹配任意一个除括号范围内的字符
[^0-9] 匹配任意一个非数字字符
重复字符 x(任意的单个字符)
x? 匹配0个或者1个x
x+ 匹配至少一个x字符
let reg = /4+/g 字符串中至少有一个4 let reg = /\s+/g/ 匹配空格
x* 匹配任意个x字符
x{m,n} 匹配至少m个,最多n个字符,包括n
x{n} 必须匹配n个字符
(xyz)+ 小括号括起来的部分是当作单个字符处理
空白字符
\s 匹配任意单个的空白字符
\S 匹配任意单个非空白字符
'.'可以替代任何字符:
在小括号中你可以使用管道符号 |,它代表或


写到最后
i - 代表忽略大小写
m - 代表多行匹配
g - 代表全局匹配(可以匹配多次)


量词匹配

    • 匹配 0 次或多次
    • 匹配 1 次或多次
      ? - 匹配 0 次或 1 次
      {3} - 匹配 3 次
      {2,4} - 匹配 2、3 或 4 次
      {2,} - 匹配 2 次或多次

至此 ^ 具有两个含义:

如果用于正则表达式的开头,代表匹配字符串的开头
如果用于中括号 [] 内部,则代表匹配非此字符


1. let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/

最后一个括号的意思是:17位数字加上"数字或者大写的X或者小写的x",
像这种是可以直接拼接的 /^(94\d{3}|95\d{2}$/g


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数字类 数字:^[0-9]$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d...
    output阅读 202评论 0 0
  • 前言 正则表达式(Regular Expression)字面意思是具有一定规则的表达式,通常被用来检索、替换那些符...
    追星人小豪阅读 432评论 0 1
  • 正则表达式的思想是给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。...
    懿小诺阅读 243评论 0 0
  • 正则表达式的思想是给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。...
    懿小梦阅读 95评论 0 0
  • 关键词:正则表达式 校验数字 字符串 特殊需求
    ferrint阅读 345评论 0 1