正则表达式对于JavaScritp来说是比较新的东西,它是随着Internet Explorer和Netscape Navigator 4而出现的。大多数正则表达式使用的语言是Perl,在UNIX/Linux 脚本中是很常见的,JavaScript的功能就是从它发展而来。我们先介绍一些正则表达式的基础知识,然后看看怎样在JavaScript中使用它们。你可以从这里下载本文的示例代码。
使用正则表达式可以处理很多不同的任务,包括:
例如,假设要提取一名用户的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.”