正则表达式真的是一个比较重要的工具,日常工作中有太多需要用到正则表达式的场景。UI检测用户输入的合法性是一个比较容易想到的场景,比如请用户输入一个IP地址,或者输入一个文件的sha1值。由于IP地址 sha1是有一定规则的,输入检查是不可缺少的一项。如何判断一个用户的输入是否合法,正则表达式发挥作用的场景就到了。
好多语言都支持正则表达式,当然据说Perl语言是支持的最好的语言,无奈我没怎么学过。我在日常工作中遇到过C语言对正则表达式的支持,JS PHP 也遇到过。本文主要讲述JS对正则表达式的支持。
JS 通过RegExp类型来支持正则表达式。
1 格式一:
var expression = /pattern/ flags;
如下面的代码段:
搜索dat,flag为i表示不区分大小写,即Dat,DAT,dAT,这些都是匹配的。
2 格式二: var expression = new RegExp(pattern,flags);
如 :
- var pattern = new RegExp("dat",'i');
和格式一中的示例效果是一样的。
正则表达式中支持下面三个标志位
g:全局模式,即模式应用于整个字符串,而不是找到第一个匹配项就停止。
m:表示多行,即到达一行文本末尾时还会继续查找下一行是否存在匹配项。
i:不区分大小写。
- <html>
- <head>
- <title>RegExp Constructor Properties Example</title>
- <script type="text/javascript">
-
- var text = "the book is about DaTabase";
- var pattern = /dat/i;
-
- if (pattern.test(text)){
- alert("found");
- }
- </script>
- </head>
- <body>
- </body>
- </html>
- <html>
- <head>
- <title>RegExp Constructor Properties Example</title>
- <script type="text/javascript">
-
- var text = "the book is about DaTabase";
- var pattern = new RegExp("dat","i");
-
- if (pattern.test(text)){
- alert("found");
- }
- </script>
- </head>
- <body>
- </body>
- </html>
实例代码中其实给出了如果检测字符串中有没有相应模式的方法,就是: pattern.test(string),如果找到相应的匹配项,则返回true,没找到,则返回false。在我们的实例当中,因为text字符串中存在匹配项DaT,所以返回了true,浏览器打出了found的警告框。
当然了,我这个只是个例子,比较简单的描述JS对正则表达式的支持。要想获取复杂的功能,就要构造相应的pattern,利用pattern来检测时候存在匹配项。至于正则表达式部分我本身也不是很精通,而且不是本文的concern,所以我就不写了。
参考文献:
1 Javascript 高级程序设计
2 正则表达式 百度百科
阅读(608) | 评论(0) | 转发(0) |