JavaScript和正则表达式二重唱

ZDNet软件频道 时间:2003-04-04 作者:BUILDER.COM |  我要评论()
本文关键词:
正则表达式对于JavaScritp来说是比较新的东西。我们先介绍一些正则表达式的基础知识,然后看看怎样在JavaScript中使用它们。
正则表达式被用来匹配一组文字。通常,它有两类用途:
  • 确认
  • 查找和替换

正则表达式对于JavaScritp来说是比较新的东西,它是随着Internet Explorer和Netscape Navigator 4而出现的。大多数正则表达式使用的语言是Perl,在UNIX/Linux 脚本中是很常见的,JavaScript的功能就是从它发展而来。我们先介绍一些正则表达式的基础知识,然后看看怎样在JavaScript中使用它们。你可以从这里下载本文的示例代码。

什么时候利用正则表达式

使用正则表达式可以处理很多不同的任务,包括:

  • 对用户输入的数据如信用卡号或订单号进行确认。
  • 对用户在Web表单中输入的电子邮件地址进行确认。
  • 对某个聊天室的输入进行检查,确保其只含有正当的词语。
  • 为避免SQL Injection攻击而对输入进行检查。

例如,假设要提取一名用户的UK电话号码——一个五位的地区代码和一个六位的电话号码。如果两者之间用空格隔开,应该使用下面的正则表达式:

/^dd$/

但是这只告诉你用户的输入与你定义的格式是匹配的,而不能告诉你它是否是一个真正的电话号码。例如,全部由1组成的字符串可以通过确认,但它并不是一个UK电话号码。列表A包含了对号码进行确认的JavaScript代码。

用正则表达式进行查找与替换

正则表达式的另一个主要用途是查找和替换操作。例如,如果正在运行一个聊天组,用户可以输入数据,你想把骂人的话替换为空格。或者你正在检查稍后将进行数据库查询的输入,你要保证它们不会造成SQL Injection攻击。

除了表单,你还可以使用正则表达式对你所有的Web页面进行大的查找替换操作。例如将每个页面页脚的年份从2002年替换为2003年。

对于这种类型的任务,在创建正则表达式时需要十分小心。例如,对于下面这段文字:

“I intend to win this game without putting the football through thewindows as it is the end of the summer and winter is fast approaching.”

如果我们应用如下的正则表达式:

replace(/win/g,”lose”)

会得到这样的结果:

“I intend to lose this game without putting the football through the losedow as it is the end of the summer and loseter is fast approaching.”


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