Firefox下正则诡异问题
作者:潇洒 来源:潇洒blog 发布时间:2009-08-03 14:03:00
第二次遇到FF下正则兼容性问题( 第一次是关于"g"全局标志的,现在网上已有很多相关文章介绍)。
以下正则在FF和IE下的结果不一样,很是奇怪,目前还没找到原因和解决方案。希望有高手指点一下。谢谢!
<script type="text/javascript" >
var re = /^(?:([a-z])|([A-Z])|([0-9])){5,}|(.)+$/;
alert('abcdeFGHIJ12345'.replace(re, '$1$2$3'));
alert('ab1F'.replace(re, '$1$2$3'));
/*
完整的需求是这样:所有小写,大写,数字。5个以上都替换为1个。5个以下清空。
现在的结果是: 在IE下是正确的: eJ5 , 在FF下是: 5
期望的结果是: 1、在FF下得到同样的结果 2、弄明白为什么会这样
*/
</script>
经过一番偿试,总算(试)出FF和IE都兼容的方案来了~ 可惜暂时还无法解释为什么。
(而且也不知道这个方案是否存在bug- -,高手们,快来看看咯~)
发现bug.....跟上面的正则还是不完全一样。当string里的同类字符小于5个时就不对了。- -!
继续求高手帮忙~
<script type="text/javascript" >
// 在ie和ff下结果一样了
var re = /(?:([a-z]){5,}|([A-Z]){5,}|([0-9]){5,})|(.)/g;
alert('abcdeFGHIJ12345'.replace(re, '$1$2$3'));
alert('ab1F'.replace(re, '$1$2$3'));
// 同类字符小于5个时又不对了
alert('abcFG12'.replace(re, '$1$2$3'));
</script>
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 前言:前几天上课闲着没事写了一个python敲击木鱼积累功德的小项目,当时纯粹就是写着玩,回顾一下鼠标事件的东西还记不记得,发现这个博客的点
- 前言PyCharm是一种Python 的IDE工具(集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,内部
- 逻辑比较简单 ,直接上代码 定时发送直接使用了win服务器的定时任务来定时执行脚本#coding:utf-8from __futu
- 1.断点调试是啥?难不难?断点调试其实并不是多么复杂的一件事,简单的理解无外呼就是打开浏览器,打开sources找到js文件,在行号上点一下
- 事务日志(Transaction logs)是数据库结构中非常重要但又经常被忽略的部分。由于它并不像数据库中的schema那样活跃,因此很少
- filecmp定义了两个函数,用于方便地比较文件与文件夹: filecmp.cmp(f1, f2[, shallow]): 比较两个文件的内
- 追本溯源,从使用开始首先看一下我们通常是如何使用微软自带的认证,一般在Startup里面配置我们所需的依赖认证服务,这里通过JWT的认证方式
- Pycharm安装cv2 [python3.6]python解释器为Anaconda的3.6版本下载在这里选择对应的版本进行下载,其中参数分
- 在 asp 应用中,经常用到 Session 对象来保存用户临时私有数据,而 asp 的 Session 对象是依赖于浏览器的 Cookie
- 本文实例为大家分享了js选项卡切换效果的具体实现代码,供大家参考,具体内容如下<!DOCTYPE html><html&g
- 本文实例讲述了Python mutiprocessing多线程池pool操作。分享给大家供大家参考,具体如下:python — mutipr
- Hello World一个简单的hello world例子:#!/usr/bin/env perluse strict;use warnin
- 1、异常出现的场景.:在使用Hibernate做为项目持久层的情况下,需要对某一张表进行一个扩展,扩展操作便是在该表上创建一个触发器。将表中
- 如下所示:import pandas as pddata = pd.read_excel('123.xls','Sh
- 由于要学习搭建服务器和数据库,所以最近开始自学sql语言了,至于写数据库就用比较基础的Mysql数据库了,虽然Mysql已经被互联网公司所淘
- 本文实例讲述了Python线程threading模块用法。分享给大家供大家参考,具体如下:threading-更高级别的线程接口源代码:Li
- python保存numpy数据:numpy.savetxt("result.txt", numpy_data);保存li
- MySQL之前有一个查询缓存Query Cache,从8.0开始,不再使用这个查询缓存,那么放弃它的原因是什么呢?在这一篇里将为您介绍。My
- 本文实例为大家分享了vue实现页面添加水印的具体代码,供大家参考,具体内容如下js文件建一个watermark.js文件let setWat
- 1.VUE验证邮箱export const isEmail = (s) => { return /^([a-