`
cbting
  • 浏览: 58106 次
  • 性别: Icon_minigender_1
  • 来自: 汕头
社区版块
存档分类
最新评论

正则表达式总结!!!

阅读更多

1排出行字符组;

作用:规定某个位置不允许出现的字符;

比如: [^...]方括号中不能出现的字符;

注意;[^]不能排除空字符;


2字符串简记法;
作用是:方便他们的的使用;
\d =[0-9]
\D=[^0-9]
\w=[0-9a-zA-Z_]
\W=[^0-9a-zA-Z_]
\s=匹配空白符(回车,换行,制表,空格)
\S=非匹配空白符(回车,换行,制表,空格)

3特殊的简记fa

. 好可以匹配除换行符的所以字符
\.和[.] 匹配点好本身

3量词部分:

作用:限定之前字符出现的次数

* 号表示之前的字符可以出现0次到无穷次.
+ 表示之前字符至少需要出现1次
? 号表示之前的字符只能出现1次;
区间连词;

*={0,1}
+={1,}
?={0,1}
量词的局限;
如果要规定一个字符串出现的次数,必须使用括号()在括号后面添加量词

4括号的用途
作用表示某个位置出现的字符串;
形式;
(...|....)
(...|....|...)

5锚点;
作用;用来规定匹配的位置
^ 匹配一行的开头
$ 匹配一行的末尾
\A 匹配 整个字符串的开头
\Z 匹配整个字符串的末尾

6环视
锚点对位置的判断不够灵活
作用:应用子表达式对位置进行灵活判断;
形式;
(?=...)  肯定顺序环视
(?!...)  否定顺序环视
(?<=...)  肯定逆序环视
(?<!...)  否定逆序环视
注意是事项;
环视结构仅用于做布尔判断.并不保存在整个表达是的匹配结果之中
逆序环视结构对子表达式有限制 (.net没有限制)

 

 

 

 

 

/*-------------------------------------------*/

 

只能输入数字:"^[0-9]*$"。

  只能输入n位的数字:"^\d{n}$"。

  只能输入至少n位的数字:"^\d{n,}$"。

  只能输入m~n位的数字:。"^\d{m,n}$"

  只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。

  只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。

  只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。

  只能输入非零的正整数:"^\+?[1-9][0-9]*$"。

  只能输入非零的负整数:"^\-[1-9][]0-9"*$。

  只能输入长度为3的字符:"^.{3}$"。

  只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。

  只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。

  只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。

  只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。

  只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。

  验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。

  验证是否含有^%&’,;=?$\"等字符:"[^%&’,;=?$\x22]+"。

  只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"

  验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。

  验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。

  验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-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"。

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

  用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,’’)" onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\u4E00-\u9FA5]/g,’’))"

  用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,’’)" onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\uFF00-\uFFFF]/g,’’))"

  用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\d]/g,’’))"

  用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,’’) "onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^\d]/g,’’))"

  得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1

以下是引用片段:
  s="http://www.9499.net/page1.htm"
  s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
  alert(s)

  匹配双字节字符(包括汉字在内):[^\x00-\xff]

  应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

以下是引用片段:
  String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}

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

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

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

以下是引用片段:
  String.prototype.trim = function()
  {
  return this.replace(/(^\s*)|(\s*$)/g, "");
  }

  利用正则表达式分解和转换IP地址:

  下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:

以下是引用片段:
  function IP2V(ip)
  {
  re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式
  if(re.test(ip))
  {
  return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
  }
  else
  {
  throw new Error("Not a valid IP address!")
  }
  }
<!-- Error -->

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics