IE/Firefox中全局正则表达式的兼容

2016-02-19 16:35 26 1 收藏

下面,图老师小编带您去了解一下IE/Firefox中全局正则表达式的兼容,生活就是不断的发现新事物,get新技能~

【 tulaoshi.com - Web开发 】

  有这样一段代码:if (RegExp.test(num))的结果,在IE中每次都为TRUE,而在Fire fox中若第一次为True,第二次必为False,后面交替出现。大概看了一下过往的解决办法:

  方法一:把if (RegExp.test(num))改为if (num.match(RegExp))

  方法二:使用RegExp对象处理,也就是 new RegExp("^(-)?[0-9]*$")

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  也不知道都验证过没有,反正我试过都达不到兼容效果,其实最根本的问题不是采取哪种正则对象,而是表达式中的"g"导致在Firefox中的效果和IE不一致,Firefox将该RegExp当成全局变量来处理了,所以最简单有效的办法就是将 var RegExp=/^(-)?[0-9]*$/g 改为var RegExp=/^(-)?[0-9]*$/ ,好的解决办法不在乎复杂,而是对症下药,这样的情况毕竟不常见。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  function isNum(num){  if(num.length==0){    return false;   }  var RegExp=/^(-)?[0-9]*$/g;  if (RegExp.test(num)){    return true;   }else{    return false;   }}

来源:http://www.tulaoshi.com/n/20160219/1612482.html

延伸阅读
标签: Web开发
前言 正则表达式是烦琐的,但是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。只要认真去阅读这些资料,加上应用的时候进行一定的参考,掌握正则表达式不是问题。 索引 1. 引子 目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境,以...
标签: Web开发
最后写了一个IP地址的正则表达式验证程序。 代码如下: ((25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(25[0-5]|2[0-4]\d|1?\d?\d) 截图如下:
标签: ASP
       最近很多帖子问如何将内容从数据库取出后换行,这就要用到正则表达式。简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。我们可以在许多编程语言中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或sed shell程序等。此外,象JavaScript这种客户端的脚本语言也...
标签: ASP
  14.后向引用 正则表达式一个最重要的特性就是将匹配成功的模式的某部分进行存储供以后使用这一能力。请回想一下,对一个正则表 达式模式或部分模式两边添加圆括号将导致这部分表达式存储到一个临时缓冲区中。可以使用非捕获元字符 '?:', '?=', or '?!' 来忽略对这部分正则表达式的保存。 所捕获的每个子匹配都按照在正则表达式模式中...
标签: PHP
字符/ 意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释。 例如:/b/匹配字符’b’,通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特殊字符,表示 匹配一个单词的分界线。 或者: 对于几个字符,通常说明是特殊的,指出紧接着的字符不是特殊的,而应该按字面解释。 例如:*是一个特殊字符...

经验教程

63

收藏

79
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部