在网页里有个input,表示身份证后四位:
<input type='text' id='idkeyLastFour' tabIndex='3' class='text m' maxlength='4' onblur='validate_idkeyLastFour();' />
然后,在js里用正则去验证其有效性:
function validate_idkeyLastFour() {
var idkeyLastFour = document.getElementById('idkeyLastFour');
var re = /^\d{3}(\d|x)$/ig;
if(!re.test(idkeyLastFour.value)) {
dealError(idkeyLastFour, '请填写身份证后四位');
return false;
}
dealOk(idkeyLastFour);
return true;
}
问题来了------
在IE下,函数符合预期;在Firefox下,validate_idkeyLastFour()交替返回true和false。
原因:
函数中的正则表达式里的修正符"g",它表示全局,而test方法只在字符串中匹配单次,下面是来自《js手册》关于test方法的一句解释:
js手册 写道
test 方法检查在字符串中是否存在一个模式,如果存在则返回 true,否则就返回 false。
全局 RegExp 对象的属性不由 test 方法来修改。
由于ie“容忍"了全局修正符,使得网页看起来“正常”。实际上,Firefox较为规范。
解决方法:
去掉修正符 g 即可!
分享到:
相关推荐
在提供的代码中,开发者通过检测浏览器类型(通过`navigator.userAgent`)来判断是否为Firefox,然后使用JavaScript的原型链(prototype)来添加`innerText`的getter和setter方法。这是通过`__defineGetter__`和`__...
对于非IE浏览器,如Firefox、Chrome、Safari、360等,它们不支持ActiveXObject。我们可以使用Blob对象和URL.createObjectURL方法创建一个临时的文件URL,然后创建一个`<a>`标签指向这个URL,模拟点击下载。同时,...
Test Firefox XMl DOm.htm Firefox中的XML DOM支持 Firefox LoadXML.htm Firefox中的XML DOM支持 XPath Example1.xml XPath Writer.xml 开发中实际使用的XML文档 Test4IE XPath.htm IE中的XPath支持 Test ...
在提供的文件列表中,“Firefox 5303geckodriver0150.exe”和“geckodriver.exe”就是用于Firefox 53的GeckoDriver,它是Selenium与Firefox交互的关键。 接下来,让我们详细讲解如何使用Java和Selenium搭建这个自动...
Test Firefox XMl DOm.htm Firefox中的XML DOM支持 Firefox LoadXML.htm Firefox中的XML DOM支持 XPath Example1.xml XPath Writer.xml 开发中实际使用的XML文档 Test4IE XPath.htm IE中的XPath支持 Test ...
Test Firefox XMl DOm.htm Firefox中的XML DOM支持 Firefox LoadXML.htm Firefox中的XML DOM支持 XPath Example1.xml XPath Writer.xml 开发中实际使用的XML文档 Test4IE XPath.htm IE中的XPath支持 Test Firefox ...
总的来说,尽管Firefox早期版本不支持`outerHTML`,但开发者可以通过上述两种方式来实现跨浏览器的兼容性,确保在Firefox中也能正常使用`outerHTML`的功能。在实际开发中,根据项目需求和对浏览器兼容性的考虑,可以...
标题 "test.7z_firfox_geckodriver_java_linux_selenium" 提示我们这是一个关于在Linux环境下,使用Java编程语言通过Firefox浏览器的GeckoDriver来实现Selenium自动化测试的项目。描述 "java调用linux中firfox访问...
在使用Linux系统并采用Firefox浏览器访问含有Flash内容的网页时,用户可能会遇到中文字符显示不正常的问题。具体表现为中文字符被替换为一系列的小方框或者乱码,这极大影响了用户体验。 #### 二、原因分析 这种...
private Selenium selenium = new DefaultSelenium("localhost", 4444, "*firefox", TEST_PAGE_URL); @Override protected void setUp() throws Exception { super.setUp(); selenium.start(); } @Override...
此外,如果你在Ubuntu上同时使用Firefox和Chrome,有时可以借助Firefox的插件来调用Chrome的内置Flash插件,以获得更好的兼容性。但请注意,这种方法并不总是有效,且可能需要额外的配置步骤。 另外,如果你在...
此外,文档中还提到了cookie在不同浏览器中的兼容性问题,比如FF(Firefox)和IE(Internet Explorer)对cookie的支持差异,以及如何在JavaScript中通过各种参数设置cookie的属性,如过期时间、路径、域和安全标志。...
System.setProperty("webdriver.firefox.bin", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); WebDriver driver = new FirefoxDriver(); driver.get("http://baidu.com"); WebElement input = ...
- **主方法**:`public static void main(String[] args) { ... }` 是 Java 程序的入口点,所有 Java 应用程序都必须包含一个主方法。 - **静态方法**:`main` 方法被声明为 `static`,意味着它可以不依赖于任何对象...
它支持多种浏览器,如Chrome、Firefox、IE等,使得测试脚本可以在不同的浏览器环境下运行。标题"使用已打开的浏览器"提示我们将讨论如何利用Selenium与已启动的浏览器实例进行交互,而非每次都启动一个新的浏览器...
多态是指同一种行为在不同对象中有不同的表现形式。 #### 九、JavaScript 的内置对象 JavaScript 提供了一系列内置对象,用于简化编程任务。 - `Math`:数学函数。 - `Date`:日期和时间。 - `String`:字符串操作...
标题和描述提到的代码就是这样一个示例,它实现了在Firefox和其他浏览器(包括IE)中,文本框只能输入最多两位小数的数字,同时排除其他非数字字符。 首先,我们来看关键的JavaScript函数`checkNumber(e, txt)`。这...
更令人印象深刻的是,如果返回的结果是一个Java对象,该对象可以在JavaScript中进一步调用其方法,实现了所谓的“级联调用”。 #### 支持的浏览器 - **Internet Explorer**(IE6、IE7、IE8) - **Firefox** - **...
首先,javascript的trim函数在firefox下面使用没有问题: [removed] var test1 = " aa "; test1 = test1.toString(); test1 = test1.trim(); [removed] 在火狐下这样用没有问题, 但是在IE下就报错! 对此,...