CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

如何验证用户添入ID的有效性?就是说只能用字母、数字和下划线而不能包含别的字符

楼主aben527cn(阿笨)2002-02-09 01:11:43 在 Web 开发 / JavaScript 提问

我是这么写的:  
  function   rightID(ID)  
  {  
    var   a="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOQPRSTUVWXYZ0123456789_";  
    var   id=ID;  
    for(var   i=0;i<=id.length;i++)  
        {  
            for(var   j=0;j<=a.length+1;j++)  
                if(id.charat(i)==a.charat(j))   break;  
            if   (j==a.length+1)   return   0;  
        }  
  return   1;  
  }  
   
  可是在执行的时候没有效果,根本就不判断!!大家有什么好办法? 问题点数:20、回复次数:5Top

1 楼karma(无为MS MVP)回复于 2002-02-09 02:00:03 得分 20

function   rightID(ID)  
  {  
      var   re   =   /^\w+$/;  
      return   re.test(ID);  
  }Top

2 楼Studio()回复于 2002-02-09 11:20:46 得分 0

用正则表达式啊!  
  楼上的兄弟   re要定义类型的吧Top

3 楼aben527cn(阿笨)回复于 2002-02-09 11:31:33 得分 0

请问Test()方法何时返回True   or   False?  
  我是这么写的:  
  function   rightID(ID)  
  {  
    var   a   =   /abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOQPRSTUVWXYZ0123456789_/;  
    return   a.test(ID);  
  }  
  然后在<BODY>里这么写:  
  <SCRIPT   LANGUAGE="JavaScript">  
  <!--  
  a="%";  
  document.write(rightID(a));  
  //-->  
  </SCRIPT>  
  可是无论是用a="$#@%"还是a="5568"打印出的都是False  
  但是用无为兄你的那个函数,如果传过去的是5568就打印True,是$#@%就打印False,这是为什么?  
  还有我定义字符串一般都是用a="adfadf";,无为兄你用a=/adfasd/;和我的这个有什么区别吗?  
  Top

4 楼karma(无为MS MVP)回复于 2002-02-09 11:43:39 得分 0

you   are   asking   to   match   a   string   which   includes   "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOQPRSTUVWXYZ0123456789_",   a   63-character   string.   None   of   your   strings   matched   that,   that   is   why   it   is   false.   Try  
   
  var   a   =   /[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOQPRSTUVWXYZ0123456789_]+/;  
   
  or  
  var   a=/[a-zA-Z0-9_]+/;  
  or    
  var   a=/\w+/;  
   
  but   this   is   wrong,   since   this   will   match   "%abad^"   too.   That   is   why   you   should   use  
  var   a   =   /^\w+$/;  
   
  Top

5 楼aben527cn(阿笨)回复于 2002-02-09 17:08:18 得分 0

无为兄的方法果真奇妙  
  我使用了var   a   =   /^\w+$/;  
  已经成功  
  可是我不明白的"\w"是什么意思,看上去是转义字符,不知道转成什么了  
  不要笑话我啊,我刚刚学JAVASCRIPT的Top

相关问题

  • 无法删除字符的下划线
  • 算式字符串有效性检查
  • 算式字符串有效性检查
  • 如何打印出带有下划线的字符串?
  • table1中的字段过虑,能否单个字符匹配,像用query中的下划线_?
  • 【双帖】如何使得输出的字符带有下划线,好像还有点难度。
  • 正则表达式 匹配包括下划线的任何单词字符 怎么写啊
  • 如何限定一个字符串只能包含: 字母和数字和-和.以及下划线?不是Jsp
  • 求字符串只允许是字母数字和下划线的正则表达式?在线等!!!
  • 下划线问题

关键词

  • 打印
  • match
  • 无为兄

得分解答快速导航

  • 帖主:aben527cn
  • karma

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo