快速业务通道

MooTools教程(13):正则表达式

作者 佚名技术 来源 网页制作 浏览 发布时间 2012-03-07

这往往是处理正则表达式头痛的地方,尤其是你对它们没有完全熟悉的时候。作为参考,正则表达式中需要转义的特殊字符包括:

- . * + ? ^ $ { } ( ) | [ ] / \

幸运的是,MooTools提供了escapeRegExp()函数,可以确保你的正则表达式被正确地转义。这是另外一个字符串函数,因此你只需要在你开始查找之前,在你要匹配的正则表达式字符串上调用这个方法就行了。

参考代码: [复制代码] [保存代码]
  1. // 我们要转义的字符串
  2. var unescaped_regex_string = "[stuff-in-here]";
  3.  
  4. // 转义这个字符串
  5. var escaped_regex_string = unescaped_regex_string.escapeRegExp();
  6.  
  7. // 转义后的字符串是 "\[stuff\-in\-here\]"

注意,这意味着你要在正则表达式中使用的任何特殊字符都必须在转义之后再添加上去:

参考代码: [复制代码] [保存代码]
  1. // 需要转义的字符串
  2. var unescaped_regex_string = "[stuff-in-here]“;
  3. // 转义这个字符串,从开头匹配
  4. var escaped_regex_string = “^” + unescaped_regex_string.escapeRegExp();
  5. // escaped_regex_string现在就是“^\[stuff\-in\-here\]”

继续在下面的例子中测试使用escapeRegExp()和不使用的区别:

参考代码: [复制代码] [保存代码]
  1. var regex_demo = function(){
  2.     // 获取要测试的字符串
  3.     var test_string_1 = $(''regex_7_value_1'').get(''value'');
  4.  
  5.     // 获取要使用的正则表达式
  6.     var regex_value = $(''regex_7_match'').get(''value'');
  7.  
  8.     // 检查我们是不是要转义正则表达式
  9.     if ($(''regex_7_escape'').checked){
  10.         // 如果是的,我们则进行转义
  11.         regex_value = regex_value.escapeRegExp();
  12.     }
  13.  
  14.     // 检查一下我们是不是要忽略大小写
  15.     var regex_param = "";
  16.     if ($(''regex_7_param'').checked){
  17.         regex_param = "i";
  18.     }
  19.  
  20.     // 运行测试
  21.     var test_result_1 = test_string_1.test(regex_value, regex_param);
  22.     if (test_result_1){
  23.         $(''regex_7_result_1'').set(''html''"matched");
  24.     }
  25.     else {
  26.         $(''regex_7_result_1'').set(''html''"didn''t match");
  27.     }
  28. }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号