正则表达式

17 篇文章 0 订阅
一 正则表达式的正文。 
正则表达式中使用了特殊符号。下面我就将各种符号以及其意义和用法简单的介绍一下(说明:"X以上包括X"):
/ 表示在其后的文字是特殊符号。例:"n""n"是一致的。"/n"和换行符是一致的。 
^ 和输入的开始一致。 
$ 和输入的结尾一致。 
* 与此符号之前的文字0次以上相同的话,两者一致。例:"zo*""zoo","z"都一致。 
+ 与此符号之前的文字1次以上相同的话,两者一致。例:"zo*""zoo"一致,但和"z"不一致。 
? 与此符号之前的文字0次或1次相同的话,两者一致。例:"a?ve?""never""ve"一致。 
. 与除了换行符的所有单一文字一致。 
(正则表达式) 以所指定的表达式寻找一致文字。如果找到了,储存下来。一致的部分可以从 
Match方法获得的阵列中找到。 
x|y x和y的任意一方相同都会被认为一致。例:"(z|f)ood""zood","food"都一致。 
{n} n是0以上的整数。与其前的文字n次相同的话,两者一致。例:"o{2}""Bob"中的"o"不一 
致,与"foooood"中的前两个"o"一致。 
{n,} n是0以上的整数。与其之前的文字至少n次相同才一致。 
{n,m} 两者整数。n至m范围的次数一致。 
[xyz] 与中括号中的文字任意一个相同都被认为一致。 
[^xyz] 与上面的相反。 
[a-z] 文字的范围,从"a""z"的文字都被认为一致。 
[^a-z] 与上面的相反。 
/b 表示单词的末尾。例:"er/b""never""er"一致,但和"verb""er"不一致。 
/B 表示非单词的末尾。 
/d 表示数字。 
/D 表示非数字。 
/s 表示空格。 
/S 表示非空格。 
/w 表示所有字母数字。 
/W 表示非所有字母数字。
   i   (忽略大小写)   
  g   (全文查找出现的所有   pattern)   
  gi   (全文查找、忽略大小写)
/num num应该被赋予一个正数。与已经储存的部分比较。例:"(.)/1"和任意的两个连续的相同 
文字一致。
二 如何定义一句正文: 
方法一:直接写 
var s=/正则表达式/i或g或ig
方法二:建立对象实例: 
var s=new RegExp(正则表达式,i或g或ig)

三 与正则表达式有关的方法:
1 exec方法 
描述: 在制定的文字行内进行搜索。 
结构: 正则表达式.exec(字符串)。 
解说: 检索的返回: 
null 没有检索到; 
一致的结果 检索到后; 
例: 
代码片段如下: 
<script> 
var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp' 
var r=new RegExp('g','i'); 
var a=r.exec(s); 
alert(a); 
</script>
2 compile方法: 
描述: 修改正则表现的内部形式。 
结构: 正则表达.compile('正文','g或i或ig')。 
解说: 没什么好说的。 
例: 
代码片段如下: 
<script> 
var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp' 
var r=new RegExp('[A-Z]','g'); 
var a=s.match(r); 
alert(a); 
r.compile('[a-z]','g'); 
var a=s.match(r); 
alert(a); 
</script>

3 test方法: 
描述: 顾名思义,做测验。 
结构: 正则表达.test(字符串)。 
解说: 返回: 
false 没找到; 
true 找到了; 
例: 
代码片段如下: 
<script> 
var re=/re/g; 
var msg='return'; 
var msg1='goon'; 
alert(re.test(msg)); 
alert(re.test(msg1)); 
</script>

4 replace方法: 
描述: 寻找一致的并置换他。 
结构: 字符串.replace(正则表达,替换字符串)。 
解说: 与字符串不变化,返回其副本。 
例: 
代码片段如下: 
<script> 
var s='AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp' 
var r=new RegExp('[A-Z]','g'); 
var a=s.replace(/[a-z]/g,'A'); 
alert(a); 
</script>

5 match方法: 
描述: 实行检索。 
结构: 字符串.match(正则表达)。 
解说: 返回数列。 
例: 
代码片段如下: 
<script> 
var re=/re/g; 
var msg='rererere'; 
var msg1='goon'; 
alert(msg.match(re)); 
alert(msg1.match(re)); 
</script>

6 split方法: 
描述: 分割字符串。 
结构: 字符串.split(正则表达)。 
解说: 返回数列。 
例: 
代码片段如下: 
<script> 
var s="hello this good world"; 
var p=//s/g; 
var a=s.split(p); 
alert(a); 
</script>

7 search方法: 
描述: 返回一致的字符串的位置。(这比indexOf可用途广多了!) 
结构: 字符串.search(正则表达)。 
解说: 返回 
正整数 如果找到了 
-1 如果没找到 
例: 
代码片段如下: 
<script> 
var s="hello this good world"; 
var p=/good/g; 
var a=s.search(p); 
alert(a); 
</script>

把replace的方法的例子改一下: 
代码片段如下: 
<script> 
var s="hellOSCF"; 
var r=new RegExp("[A-Z]","g"); 
s=s.replace(r,"a"); 
alert(s) 
</script>

最后是他的各种属性
1 lastIndex属性: 
描述: 设定检索开始的位置,可以得到其值 
结构: 正则表达.lastIndex(=值). 
解说: 
当lastIndex大于检索文字长度的时候,如果用test,exec方法执行的话,执行失败, 
lastIndex属性被设定为0. 
当lastIndex等于检索文字长度的时候,如果表达式正文是空的话,一致.其他场合, 
执行失败,重设为0. 
上记以外的情况,lastIndex会被设定为最后一致的文字列的位置指针.
2 source属性 
描述: 返回正则表达的正文 
结构: 正则表达.source 
例: 
代码片段如下: 
<script> 
var s=/[a-z]{3}/W/s/g; 
var s1=new RegExp("[a-z]{3}/W","g"); 
alert(s.source); 
alert(s1.source); 
</script>
下面我将几个处理字符函数写出来:
1 严禁数字 
代码片段如下: 
function check(msg){ 
var exe=//d/g; 
if(exe.test(msg))return(0); 
else return(1) 
}
2 只准字母 
代码片段如下: 
function check(msg){ 
var exe=//W/g; 
if(exe.test(msg))return(0); 
else return(1); 
}

3 严禁代码 
代码片段如下: 
function check(msg){ 
var exe=/<(/w|/W)*>/g; 
if(exe.test(msg))return(0); 
else return(1);
匹配中文字符的正则表达式: [\u4e00-\u9fa5]  
匹配双字节字符(包括汉字在内):[^\x00-\xff]  评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)   

匹配空白行的正则表达式:\n\s*\r 评注:可以用来删除空白行   

匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />  评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力   

匹配首尾空白字符的正则表达式:^\s*|\s*$  评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式   

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 评注:表单验证时很实用   

匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*    

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 
匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}  评注:匹配形式如 0511-4405222 或 021-87888822   

匹配腾讯QQ号:[1-9][0-9]{4,} 评注:腾讯QQ号从10000开始   匹配中国邮政编码:[1-9]\d{5}(?!\d) 评注:中国邮政编码为6位数字   

匹配身份证:\d{15}|\d{18}  评注:中国的身份证为15位或18位   匹配ip地址:\d+\.\d+\.\d+\.\d+ 评注:提取ip地址时有用   

匹配特定数字:  

^[1-9]\d*$    //匹配正整数 

^-[1-9]\d*$   //匹配负整数 

^-?[1-9]\d*$  //匹配整数

^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)

^-[1-9]\d*|0$  //匹配非正整数(负整数 + 0)

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数

^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数

^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)  

^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0) 评注:处理大量数据时有用,具体应用时注意修正   

匹配特定字符串:  

^[A-Za-z]+$  //匹配由26个英文字母组成的字符串 

^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串 

^[a-z]+$  //匹配由26个英文字母的小写组成的字符串  

^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串 

^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串 评注:最基本也是最常用的一些表达式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值