asp正则表达式在网页处理中的应用四则
发布时间:2008-02-24 14:44:00
正则表达式(Regular Expression)为字符串模式匹配提供了一种高效、方便的方法。几乎所有高级语言都提供了对正则表达式的支持,或者提供了现成的代码库供调用。本文以ASP环境中常见的处理任务为例,介绍正则表达式的应用技巧。
一、检验密码和邮件地址的格式
我们的第一个实例示范正则表达式的一项基本功能:抽象地描述任意复杂的字符串。它的意思就是,正则表达式给予程序员一种形式化的字符串描述方法,只需很少的代码即可描述出应用遇到的任意字符串模式。例如,对于不从事技术工作的人来说,密码格式的要求可以描述如下:密码的第一个字符必须是字母,密码最少4个字符且不超过15个字符,密码不能包含除字母、数字和下划线以外的字符。
作为程序员,我们必须把上面对密码格式的自然语言描述转换成其他形式,使得ASP页面能够理解并应用它来防止非法的密码输入。描述这个密码格式的正则表达式是:^[a-zA-Z]\w{3,14}$。
在ASP应用里,我们可以把密码验证过程写成可重用的函数,如下所示:
Function TestPassword(strPassword)
Dim re
Set re = new RegExp
re.IgnoreCase = false
re.global = false
re.Pattern = "^[a-zA-Z]\w{3,14}$"
TestPassword = re.Test(strPassword)
End Function
下面我们把这个检验密码格式的正则表达式和自然语言描述对比着看看:
密码的第一个字符必须是字母:正则表达式描述是“^[a-zA-Z]”,其中“^”表示字符串的开始,连字符告诉RegExp匹配指定范围的所有字符。
密码最少4个字符且不超过15个字符:正则表达式描述是“{3,14}”。
密码不能包含除字母、数字和下划线以外的字符:正则表达式描述是“\w”。
几点说明:{3,14}表示前面的模式匹配至少3个、但不超过14个的字符(加上第一个字符就成了4到15个字符)。注意花括号内的语法要求极其严格,不允许在逗号的两边加入空格。如果加入了空格,它将对正则表达式的含义产生影响,导致密码格式检验时产生错误。另外,上面的正则表达式末尾也没有加上“$”字符。$字符使得正则表达式匹配字符串直至末尾,确保合法的密码后面没有加上任何其他字符。
类似于密码格式检验,检查email地址的合法性也是一个很常见的问题,用正则表达式进行简单的email地址检验可以实现如下:
<%
Dim re
Set re = new RegExp
re.pattern = "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$"
Response.Write re.Test("aabb@yahoo.com")
%>
猜你喜欢
- 在用户登录windows操作系统的时候,如果触发到了登录表单的密码录入框上,并且此时按下了“大写锁定键(Caps Lock)”,那么界面上会
- 如何设置list步长示例:range(a, b, step)>>> list(range(0,5,2)) [0,
- 在自然语言处理(NLP)领域,文本相似度计算是一个常见的任务。本文将介绍如何使用Python计算文本之间的相似度,涵盖了余弦相似度、Jacc
- 浏览器的出现互联网的出现是人类信息交流方式的一次划时代的革命,在这场革命中有两个技术对互联网的发展起到了决定性的作用:一个技术带来的人类信息
- 高阶函数高阶函数英文叫 Higher-order function,它的定义很简单,就是至少满足下列一个条件的函数:接受一个或多个函数作为输
- 游戏介绍先看看界面这是一个拼图游戏,可以自选难度和自选闯关图片游戏开始后根据不同难度,生成与所选主图 对应的 不同张数的 随机顺序的小图,然
- 编写ATM程序实现下述功能,数据来源于文件db.txt1、充值功能:用户输入充值钱数,db.txt中该账号钱数完成修改2、转账功能:用户A向
- 在项目开发的过程中可能需要开放自己的数据库给别人,但是为了安全不能自己服务器里其他数据库同时开放。那么可以新建一个用户,给该用户开放特定数据
- 引言随着ES6新语法的不断迭代更新,已经出现了许多常用的工具api。今天我将为大家推荐两款明星api,它们就是Object.freeze和O
- 1 任务需求  首先,我们来明确一下本文所需实现的需求。  现有一个
- 以下是我这几天一直在用的几个命令,先记下来,以后会整理一份mysql详细的使用文档注:[]中代表名字,需要用库名或者表名替换显示所有的库:s
- 如何在Mac中配置Python虚拟环境1.安装virtualenvpip3 install virtualenv2.安装virtualenv
- 一、uni.navigateTo(OBJECT)保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面u
- 前言本文主要任务是使用通过 tf.keras.Sequential 搭建的模型进行各种花朵图像的分类,主要涉及到的内容有三个部分:使用 tf
- 在MySQL4中,是已经开始支持全文检索(索引)的了。但是只是对英文支持全文检索。由于英文在书写上的特殊性,使得分词算法相对中文来说,简单得
- 事件流浏览器中的事件流意味着页面上可有不仅一个,甚至多个元素响应同一个事件。而这一个或多个元素响应事件发生的先后顺序在各个浏览器(主要针对I
- 这个工具是使用Python开发,可以从下面地址了解详情。官网: https://pypi.org/project/webssh/webssh
- 一、背景及研究现状在我国互联网的发展过程中,PC互联网已日趋饱和,移动互联网却呈现井喷式发展。数据显示,截止2013年底,中国手机网民超过5
- 一、前言 需求是获取某个时间范围内每小时数据和上小时数据的差值以及比率
- 装饰器实现Python 函数重载函数重载指的是有多个同名的函数,但是它们的签名或实现却不同。当调用一个重载函数 fn 时,程序会检验传递给函