1

正则表达式的 语句
元字符

*()用于分组可以用$n
来表示
*(?:)不捕获分组

*{}量词表示数量的

例如表示a个{a}
表示a到b个表示为{a,b}
表示a个以上为{a,b};

*[]查找某个范围内的字符

[0-9a-zA-Z]
查找任何从 0 至 9 的数字\查找任何从小写 a 到小写 z 的字符。\查找任何从大写 A 到大写 Z 的字符。
var va="adsn ahen ajhn akki sihj smnn uknh"
console.log(va.match(/[ae]s/))//寻找as或es
  • | 分支()相对与或的
    系统预定意元字符
  • ?表示0个或1个
  • +表示一个也上

贪婪模式与反贪婪模式

*、+和?限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。

var c="qqq icbkb coiwcnk tyu kjanc alnc"
var reg =/\w{4,7}/g
console.log(c.match(reg))// ["icbkb", "coiwcnk", "kjanc", "alnc"]
var reg =/\w{4,7}?/g
console.log(c.match(reg)) ["icbk", "coiw", "kjan", "alnc"]

前瞻

reg(?=reg1)正向前瞻
reg(?!reg1)反向前瞻

正则对象属性

*lastIndex
该属性存放一个整数,它声明的是==上一次匹配文本之后==的第一个字符的位置

<script type="text/javascript">
var str = "The rain in Spain stays mainly in the plain";
var patt1 = new RegExp("ain", "g");

patt1.test(str)
document.write("Match found. index now at: " + patt1.lastIndex);
</script>
常用的正则匹配

利用正则表达式限制网页表单里的文本框输入内容

  用正则表达式限制只能输入中文:onkeyup="value=value.replace(/1/g,'') "onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/1/g,''))"
  
用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/2/g,'') "onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/2/g,''))"

  用正则表达式限制只能输入数字:onkeyup="value=value.replace(/3/g,'') "onbeforepaste= "clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/3/g,''))"
  
   用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/3/g,''
* 验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间,
 
** 只能包含字符、数字和下划线。
 
* 验证是否含有^%&'',;=?$"等字符:“[^%&'',;=?$x22]+”
 
** 只能输入汉字:“^[u4e00-u9fa5],{0,}$”
 
 验证Email地址:“^w+[-+.]w+)@w+([-.]w+).w+([-.]w+)$”
  

 * 验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$”
 
 正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,
  “XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。
 
* 验证身份证号(15位或18位数字):“^d{15}|d{}18$”
 
 *验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”和“1”“12”
 
* 验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”
   正确格式为:“01”“09”和“1”“31”。
 
* 匹配中文字符的正则表达式: [u4e00-u9fa5]

 匹配空行的正则表达式:n[s| ]r

匹配HTML标记的正则表达式:/<(.)>.|<(.*) />/

匹配首尾空格的正则表达式:(^s)|(s$)

匹配Email地址的正则表达式:w+([-+.]w+)@w+([-.]w+).w+([-.]w+)*

匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?


  1. u4E00-u9FA5
  2. uFF00-uFFFF
  3. d

黄黄黄
119 声望6 粉丝