关于正则表达式的疑问

浴火_凤凰 2009-10-29 06:23:54
请大家看看下面的代码是怎么回事。

<form name=form1>
字符串:<input name="t1" value="123456">
模式:/<input name="t2" value="^\d*$">/
</form>
<script language=javascript>
function c1()
{
re=new RegExp("^\d*$");
alert(re.test(123456));
}
c1();//false
function c2(form)
{
re=new RegExp(form.t2.value);
alert(re.test(form.t1.value));
}
c2(document.form1);//true
function c3()
{
var b="^\d*$";
re=new RegExp(b);
alert(re.test(123456));
}
c3();//false
//请大家仔细看看c2函数和c3函数到底有什么区别?
//为什么c2函数的结果为true而c3函数的结果为false
</script>

...全文
130 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jre86 2009-10-31
  • 打赏
  • 举报
回复
JavaScript权威指南貌似80块一本现在,一定要有的书。
dreamway21 2009-10-30
  • 打赏
  • 举报
回复
function c3()
{
var re=new RegExp(/^\d*$/);
alert(re.test(123456));
}
c3();//true

这样写就ok.
mudinlove 2009-10-29
  • 打赏
  • 举报
回复
哦,学习了,谢谢,原来是要转义,忘了这个
sohighthesky 2009-10-29
  • 打赏
  • 举报
回复
另外使用//和创建正则表达式对象式字符串的写法也不一样,
这样
function c3()
{
var b="^\\d*$";
re=new RegExp(b);
alert(re.test(123456));
}
才行
mudinlove 2009-10-29
  • 打赏
  • 举报
回复
不是用"双引号吧,用/
re=new RegExp(/^\d*$/);
var b=/^\d*$/;
sohighthesky 2009-10-29
  • 打赏
  • 举报
回复

function c2(form)
{alert("可能是\d的原因,结果"+form.t2.value.length+"|"+"^\d*$".length+"|");
re=new RegExp(form.t2.value);
alert(re.test(form.t1.value));
}

87,915

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧