JavaScript正则表达式在不同浏览器中可能遇到的问题

作者:小菜 更新时间:2025-03-16 点击数:
简介:这两天在用正则表达式搞一个稍微有点复杂的东西,但是不同浏览器之间的差异可浪费了我不少的人参。

现在我把正则表达式在五大主流浏览器(IE、firefox、Chrom

【菜科解读】

这两天在用正则表达式搞一个稍微有点复杂的东西,但是不同浏览器之间的差异可浪费了我不少的人参。

现在我把正则表达式在五大主流浏览器(IE、firefox、Chrome、Safari、Opera,以当前版本为准)之间的差异整理一下罗列出来,给大家,也算给我自己做一个备忘。

Firefox和Chrome会过度优化在循环中创建的正则表达式,似乎它们在假设写JavaScript的人会把正则表达式的构建和赋值写错地方。

1 var r;

2 for(var i = 0; i JavaScript,正则,表达式,在,不同,浏览器,中,可

javascript数组元素的添加、删除与插入以及参数数组的使用

1、数组元素的添加 push方法在数组的尾部添加元素: var colorArray=new Array(); colorArray.push(‘red‘,‘black‘,‘yellow‘); //这里是直接压入三个元素 //当然也可以这要写 colorArray.push(‘red‘); colorArray.push(‘black‘);2、数组元素的删除与插入 pop方法删除数组的最后一个元素: var colorArray=new Array();colorArray.push(‘red‘,‘black‘,‘yellow‘); colorArray.pop();//这里是删除数组的最后一个元素 var item=colorArray.pop();//当然这个方法在删除的同时也可以返回数组的最后一个元素删除数组元素的第二种方法是用splice()splice()可以删除任意数量的项,只需传入两个参数:要删除的第一项的位置和要删除的项数,例如,splice (0,2),删除数组中前两项。

当然splice(2,2)就是删除下标为2的数组元素。

splice()这个方法还可以实现数组的插入操作: splice(2,0,‘xiaochun‘)这里传入三个参数,第一个参数是要插入的位置,第二个参数表示要删除多少个元素(这里给个0,表示不用删除),第三个参数表示要插入的数据。

运行结果是在下标2处插入xiaochun以上的实例也可进行替换操作: splice(2,1,‘xiaochun‘)表示在下标为2处删除1个元素再插入xiaochun,这样就等同于替换了。

3、参数数组的使用 在Javascript中function的参数其实也是一个数组:function test(){ //注意这里我没有给出函数的参数 alert(arguments[0]+" , "+arguments[1]+" , "+arguments[2]); for(var i=0;i 下一篇:

Python中正则表达式的使用

元字符1.匹配元字符:. 它匹配除了换行字符外的任何字符,在 alternate 模式(re.dotaLL)下它甚至可以匹配换行^ 匹配行首。

除非设置 MULTILINE 标志,它只是匹配字符串的开始。

$ 匹配行尾,行尾被定义为要么是字符串尾,要么是一个换行字符后面的任何位置。

[] 它们常用来指定一个字符类别,所谓字符类别就是你想匹配的一个字符集\ 反斜杠后面可以加不同的字符以表示不同特殊意义。

它也可以用于取消所有的元字符,这样你就可以在模式中匹配它们了| 可选项,或者 "or" 操作符。

() 一般情况下表示一个记忆组 (remembered group)。

你可以利用 re.search 函数返回对象的 groups() 函数获取它的值2.重复元字符:* 重复0或N次+ 重复1或N次? 重复0或1次{m,n} 该限定符的意思是至少有 m 个重复,至多到 n 个重复3.用 "\" 开始的预定义字符集\d 匹配任何十进制数;它相当于类 [0-9]。

\D 匹配任何非数字字符;它相当于类 [^0-9]。

\s 匹配任何空白字符;它相当于类 [ \t\n\r\f\v]。

\S 匹配任何非空白字符;它相当于类 [^\t\n\r\f\v]。

\w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。

\W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]。

\A 只匹配字符串首。

当不在 MULTILINE 模式,\A 和 ^ 实际上是一样的。

然而,在 MULTILINE 模式里它们是不同的;\A 只是匹配字符串首,而 ^ 还可以匹配在换行符之后字符串的任何位置。

\Z 只匹配字符串尾。

\b 单词边界。

这是个零宽界定符(zero-width assertions)只用以匹配单词的词首和词尾。

单词被定义为一个字母数字序列,因此词尾就是用空白符或非字母数字符来标示的。

\B 另一个零宽界定符(zero-width assertions),它正好同 \b 相反,只在当前位置不在单词边界时匹配。

注:[akm$]将匹配字符"a", "k", "m", 或 "$" 中的任意一个;"$"通常用作元字符,但在字符类别里,其特性被除去,恢复成普通字符。

RegexObject(re)对象常用方法matchObject=re.match(pattern,string,flag=‘0‘):决定 RE 是否在字符串刚开始的位置匹配matchObject=re.search(pattern,string,flag=‘0‘):扫描字符串,找到这个 RE 匹配的位置tuple=re.findall(pattern,string,flag=‘0‘) :找到 RE 匹配的所有子串,并把它们作为一个列表返回matchObjectList=re.finditer(pattern,string):找到 RE 匹配的所有子串,并把它们作为一个迭代器返回MatchObject对象的常用方法findstring = matchObject.group() :返回被 RE 匹配的字符串i = matchObject.start() :返回匹配开始的位置i = matchObject.end() :返回匹配结束的位置start,end = matchObject.span() :返回一个元组包含匹配 (开始,结束) 的位置编译标志DOTALL, S :使 . 匹配包括换行在内的所有字符IGNORECASE, I: 使匹配对大小写不敏感LOCALE, L :做本地化识别(locale-aware)匹配MULTILINE, M: 多行匹配,影响 ^ 和 $VERBOSE, X :能够使用 REs 的 verbose 状态,使之被组织得更清晰易懂使用心得1.先编译后使用:re.compile(‘pattern‘)2.切勿重复编译:放入全局空间或放入cell空间并实例出一个闭包实例 Python,中,正则,表达式,的,使用,元,字符,匹配,

加入收藏
               

JavaScript正则表达式在不同浏览器中可能遇到的问题

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录