如何使用JavaScript和正则表达式进行数据验证

ZDNet软件频道 时间:2006-09-20 作者:Tony Patton |  我要评论(7)
本文关键词:JavaScript Javascript
在网络应用程序中,您可以选择使用特定平台的工具,比如ASP.NET、JSP等等,或者您可以利用客户端JavaScript的优势,JavaScript中的正则表达式可以简化数据验证的工作。

数据验证是网络应用软件从客户端接受数据的重要步骤,毕竟,您需要在使用客户数据前确保其符合预期的格式。在网络应用程序中,您可以选择使用特定平台的工具,比如ASP.NET、JSP等等,或者您可以利用客户端Javascript的优势,Javascript中的正则表达式可以简化数据验证的工作。

正则表达式

正则表达式是一种模式匹配的工具,它允许您以文字方式来表述模式,因而正则表达式成为了一个验证文本数据的强大工具。除了模式匹配之外,正则表达式还可以用于文字替换。从我在UNIX系统上使用Perl时第一次接触到正则表达式开始,对正则表达式的支持就一直在不断延伸。

注意:如果您身边有很多其他的开发者,正则表达式可能会被称作RegEx或者RegExp。尽管正则表达式的功能强大,不过其语法有点“神秘”,需要花一些时间来掌握,下面就让我们来看看使用正则表达式的一些基础知识。

基本语法

正则表达式的语法可以应用得很复杂,甚至需要一整本书来讲解这个题目,但是我将讲解其中一部分基本知识来帮助您获取正则表达式的初步认识。

一个基本概念是锚(anchor),它允许您指定字符串的起点和终点,脱字符(^)用于指定字符串的起点而美元符号($)则表示终点。如果需要在查询字符串中含有脱字符或者美元符号,您可以使用转义序列来实现,转义字符()是优先于脱字符或者美元符号之处理的。以下的例子会在单词search在字符串中出现时进行匹配。

^search$

而且,您还可以查找一组字符,只要将它们放在方括号中就行了,比如[ and ],相匹配的字符必需属于这个字符组,一个例子是在[12345]的范围内寻找匹配的数字1到5,该正则表达式也可以写作[1-5]。

很多时候您可能需要指定可以出现多次的字符,或者可选的字符,问号(?)的意思是该字符是可选的,加号(+)的意思是该字符可以出现一次或者多次,星号(*)的意思是该字符可以不出现或者出现多次。

现在让我们来看看如何将这些简单的正则表达式应用到Javascript上。

Javascript支持

Javascript在1.2版本中添加了对正则表达式的支持,浏览器的支持则开始于Internet Explorer 4和Netscape 4,所有的Firefox 版本以及大多数现代浏览器都包含了Javascript的支持。正则表达式可以通过Javascript的字符串和RegExp来使用。

使用字符串

每个Javascript字符串都可以通过三种方法来支持正则表达式,这三种方法是match()、replace()和search(),而且对象的test() 方法还允许您进行测试。以下是关于match()、replace()和search()方法的信息:

  • match(): 用于正则表达式匹配,如果多个匹配出现,则返回一个含有所有匹配结果的数组,数组中的每一个条目都是一份包含了匹配数据的拷贝;如果没有匹配值,则返回空值。
  • replace(): 用于正则表达式匹配并将所有的匹配值替换为新的子字符串,本方法的第一个参数是正则表达式,第二个参数是进行替换的字符串。
  • search(): 用于在正则表达式与指定字符串之间搜索匹配值,如果出现匹配值,则返回字符串的索引值,如果没有匹配值,则返回-1。

Javascript 还提供了RegExp对象来创建并使用正则表达式。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134