论坛首页 Web前端技术论坛

js中的正则表达式问题

浏览 3114 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-12-09  
问一个js问题,通过传入不同的input,选用不同的正则表达式,改变div中的值,(input和div在页面中是变化的)

function check(input,div)
  {  
    var input_value=document.getElementById(input).value;
    var str=return_reg(input);//获得正则表达式内容
      if(input_value=="")//为空时
{ document.getElementById(div).innerHTML=input+"内容不能为空";}
     else//不为空
{//为什么str中的值是/^[a-zA-Z]{1}[a-zA-Z0-9]{5,11}$/却不能执行下去???????
            //请相告..谢谢!
   if(!str.exec(input_value))//正则表达式不匹配时
      { document.getElementById(div).innerHTML="不合法输入";    }
  else
     { document.getElementById(div).innerHTML="你可以注册了";    }
}
  
  }
  function return_reg(input)//通过传过来的对象确定不同的正则表达式
  {  
    if(input=="username")//传入用户名输入框时,选用这个正则表达式
       { return "/^[a-zA-Z]{1}[a-zA-Z0-9]{5,11}$/"; }
   .......//返回很多的正则表达式
  }
//会不会是不能return "/^[a-zA-Z]{1}[a-zA-Z0-9]{5,11}$/";???
   发表时间:2007-12-09  
问题用死方法解决:就是在function check(input,div)中直接判断选用什么样的正则表达式
function check(input,div)
{......
//取得不同的正则表达式
  var str;
  if(input=="username")
  { str=/^[a-zA-Z]{1}[a-zA-Z0-9]{3,11}$/;}
  if(input=="userpwd")
  { str=/^[a-zA-Z0-9]{6,12}$/;}
  ......
//正则表达式取完后进行其它操作
  ..... 


但,还是想知道,如果从另一个方法中取得正则表达式,怎么取(怎么return)???
0 请登录后投票
   发表时间:2007-12-09  
lz,返回"/.../"是字符串,把"去掉就是正则对象了,正则和字符串可是不一样的呀,字符串那里来得exec方法,或者new RegExp在函数中.
0 请登录后投票
   发表时间:2007-12-10  
谢谢!问题已解决!
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics