我是学javascript的新手,这两天在写表单验证时碰到一个困惑的问题:
<script type="text/javascript">
function testRe()
{
var regName = /ab/g;
var b = regName.test("ababab");
document.getElementById("textid").value=b;
}
</script>
<input type="button" onclick="testRe()" value="Test"/>
<input type="text" id="textid" />这段代码在firefox和在IE运行时不一样,在firefox,按钮按三下就变成false了,而在IE永远是true,好像firefox
记住ab的位置,而IE没有记住,为什么会这样呢,会不会在表单验证时造成困扰啊
<script type="text/javascript">
function testRe()
{
var regName = /ab/g;
var b = regName.test("ababab");
document.getElementById("textid").value=b;
}
</script>
<input type="button" onclick="testRe()" value="Test"/>
<input type="text" id="textid" />这段代码在firefox和在IE运行时不一样,在firefox,按钮按三下就变成false了,而在IE永远是true,好像firefox
记住ab的位置,而IE没有记住,为什么会这样呢,会不会在表单验证时造成困扰啊
解决方案 »
- If "String[ ]args" is a valid syntax, why "int( )func" is invalid?
- 关于在面板中显示一条消息,可没显示出来,哪位高手帮忙看看哪出问题了
- JTable中对单元格的输入进行判断,如果输入为空就将光标锁定在这个单元格中,也就是只有这个单元格可编辑其他的不可以。怎么实现啊??
- 求视频播放器用swt写的源代码
- 如何取出JTable中的第一列的乱码!!!在线等!!!答对即揭帖!!!
- 这种问题应该怎样处理?
- tomcat 简单问题,答对立刻给分!
- 关于JDK入门
- java byte[]数组循环合并
- java 时间处理
- 问个关于java线程 EventQueue的问题,
- eclipse生成jar
var regName = /ab/g;
regName.lastIndex = 0;
var b = regName.test("ababab");
document.getElementById("textid").value=b;
}在标准的 JavaScript 中带有 g 参数时,匹配时会记住上一次所匹配到的位置,即从上一次匹配的后面开始继续进行匹配,
如果匹配不到的话就将匹配位置设为初始状态。这个状态主要是由 RegExp 对象的 lastIndex 属性控制的,这个属性仅在
RegExp 对象带有 g 标志时才有作用。IE 并没有按照标准来走。解决办法有两种:1,去掉 g 标志;
2,将 RegExp 对象的 lastIndex 强行置为初始值 0。
不过你这样写不太规范。test()是RegExp对象的方法
将var regName = /ab/g; 改为var regName = new RegExp(/ab/g);
在两个浏览器中就会显示一致。