一、
<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 次或多次
至此 ^ 具有两个含义:
如果用于正则表达式的开头,代表匹配字符串的开头
如果用于中括号 [] 内部,则代表匹配非此字符
1. let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
最后一个括号的意思是:17位数字加上"数字或者大写的X或者小写的x",
像这种是可以直接拼接的 /^(94\d{3}|95\d{2}$/g
网友评论