手机版 | 登录 | 注册 | 留言 | 设首页 | 加收藏
联系客服
当前位置: 网站首页 > 程序技巧 > asp > 文章 当前位置: asp > 文章

asp里面的regexp是什么类, 与正则表达式相关

时间:2023-02-16    点击: 次    来源:网络    添加者:佚名 - 小 + 大


某人一天写程序的时候出现了一个问题,总是出现不允许操作的对象的错误,很奇怪之前一直运行没有问题的程序,怎么会有不允许操作的对象呢?只能一步一步的查到底是那个对象不允许操作了,终于找到了这个对象,Set regEx = New RegExp,把所有的文件搜索了一遍,也没有发现 RegExp,怪不得会出现不允许操作的对象了。
上网搜索RegExp,原来这是一个VBScript5.0的正则表达式对象。只要你的服务器安装了IE5.x,就会VBScript5.0。VB中的replace和execute函数可以执行,那么这个为什么不能执行呢?猜想可能是改对象需要注册组件,开始-运行:regsvr32 vbscript.dll 就OK了。
问题解决了,那么RegExp该如何使用呢?在网上找到了相关的说明。
我们在制作网站的时候,尤其是各种电子商务网站,首先都会让用户填写一些表格来获取注册用户的各种信息,因 为用户有可能输入各式各样的信息,而有些不符合要求的数据会给我们的后端ASP处理程序带来不必要的麻烦,甚至导致网站出现一些安全问题。因此我们在将这 些信息保存到网站的数据库之前,要对这些用户所输入的信息进行数据的合法性校验,以便后面的程序可以安全顺利的执行。所以我们一般会在后端编写一个ASP 的校验程序来分析用户输入的数据是否是合法的。
或许有人会问了,使用运行在客户端的JavaScript不是可以更好更快的 来校验用户的数据吗?的确,这样在大多的情况下是可以的,为什么是大多情况下呢?因为你编写的JavaScript不一定可以完全正常的同时运行在IE以 及Netscape上面,因为微软的Jscript并不全和JavaScript相同,再加上还有一些浏览器不一定和微软以及Netscape兼容的很 好,所以很有可能在客户端的Javascript不会精确的校验用户输入的各种数据,而ASP程序是运行在服务器端的,只是和你的服务器的环境有关,无论 客户端是什么浏览器,对于你的ASP程序来说都是没有分别的,所以选择使用后端的ASP程序来进行数据合法性的校验是一个好的选择。
在使用ASP来进行后端的数据合法性校验的时候,有些人为满足不同环境下面的数据校验,编写了很多的函数来实现,比如,我们想要校验用户输入的URL 地址是否合法,是可以自己编写一段代码来逐个逐个字符的分析用户输入的信息,要分析的信息量小了,那还比较好办,若是分析的条件千变万化,那可就惨了,不 但要编写很长很繁琐的代码,而且运行的效率极其低下,有没有好的解决办法呢?有,那就是VBScritp5.0提供的“正则表达式”对象,只要你的服务器 安装了IE5.x,就会带VBScript5.0。其实,“正则表达式”原本是Unix下面的专利,尤其是在Perl语言中使用的最为广泛,正是由于“正 则表达式”的强大功能,才使得微软慢慢将正则表达式对象移植到了视窗系统上面,利用
“正则表达式”对象,我们就可以非常方便的对各种数据进行合法性的校验了。


RegExp类型

RegExp类型用来创建正则表达式。

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

比如:我们注册某些账号,它会检测你输入是否为手机号。就需要用到正则表达式。

创建RegExp类型
        创建正则表达式有两种方法。一种是字面量。一种是用RegExp构造函数。

        flags限定模式




        g:global全局模式。即模式应用于所有字符串。而非发现第一个匹配项就停止。

        i:  insensitive忽略大小写模式。即忽略字母的大小。

        m:multiple多行模式。检索到行末尾,继续像下行检索。

         var statement=/pattern/flags(可选)

创建了一个模式,匹配字符串中最先发现的a,然后停止。



匹配字符串中所有a, g为全局模式。

另一种创建正则表达式的方法:

      var statement=new RegExp("pattern","flags")

传递给RegExp构造函数的参数都是字符串。RegExp的参数模式是字符串。所以正则表达式,表达式都要以字符串的形式传入。

RegExp实例属性
global:布尔值,表示是否设置了g模式。

ignoreCase 布尔值,表示是否设置了i模式

lastIndex 整数,表示开始搜索下一项字符的位置,从0算起

multilne 布尔值 表示是否设置了m模式

source 返回以字符串形式的正则表达式

RegExp实例的方法
     RegExp主要方法是exec()

    

检索字符串是否有匹配项,发现匹配项返回一个数组,数组的值为该匹配项。在没有匹配项情况下返回null。

     test()方法

     

检索字符串是否有匹配项,返回布尔值。

RegExp构造函数属性
下面这些属性适用于作用中的正则表达式。并且基于所执行的最近一次正则表达式操作变化而变化。

index为exec()的额外属性只对这个方法有效,表示匹配项在字符串中的位置信息。 0开始





index返回匹配项的位置是2

重新给变量match赋值。

index返回匹配项位置是3,因为pattern模式为g全局模式。发现第一匹配项后结束。第二次查找是从第一匹配项后开始查找。

如果不是全局模式,那么每一次都是从头开始查找

input 属性返回最近一次要匹配的字符串



返回要与正则表达式匹配的字符串。

lastMatch   返回最近一次匹配项

lastParen    返回最近一次捕获组

lastContext  返回最近匹配项之前的文本

rightContext  返回最近匹配项之后的文本



 匹配规则
匹配规则字符串和特殊字符串

字符串即/a/;没有特殊含义。匹配某个字符串

下面是一些特殊匹配规则

(.)字符  匹配任意字符串



(\w)字符  匹配单词



(\W)字符 匹配非单词



(\d)字符 匹配数字

(\D)字符  匹配非数字

(\s)字符  匹配空白符

(\S)字符  匹配非空白符

(\b)字符  匹配指定字母开头或结尾的字母

匹配he开头的字符串

(\B)字符 匹配非指定字母开头或结尾的字母

量词
n+   指定字母连续出现过1次或多次  /tes+t/.test('test')   ///true  

?     指定字母连续出现过0次或1次   /test?/.test('testt')  ///false

*     指定字母连续出现0次或多次


选自  https://blog.csdn.net/weixin_41981695/article/details/80291986

分享按钮

上一篇:Mysql----修改数据库结构语句(alter)

下一篇:SQL注释

豫ICP备19032584号-1  |   QQ:80571569  |  地址:河南濮阳市  |  电话:13030322310  |  
Copyright © 2024 FE内容付费系统 版权所有,授权www.xingwp.cn使用 Powered by 66FE.COM