首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 求一js的正则表达式 [已结贴,结贴人:caijia]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 11:10:56 楼主
    求一个js下验证只能由字母或数字以及字母数字组合,并且可以限定长度。。
    还有就是验证url,,此url有2种,,,求一个验证前面没有http://这些的url,类似于"aa/test.aspx"就是正确的
    还有一种就是带http://的url,比如"http://192.168.1.12:8080/a/"这种url
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 11:14:391楼 得分:10
    JScript code
    var oHttpReg = /^http:\/\/([\w-]+(\.[\w-]+)+(\/[\w- .\/\?%&=\u4e00-\u9fa5]*)?)?$/; var oNoneHttpReg = /^([\w-]+(\.[\w-]+)+(\/[\w- .\/\?%&=\u4e00-\u9fa5]*)?)?$/
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-20 11:18:002楼 得分:0
    自己顶起来,别沉了...
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • showbo
    • 等级:
    发表于:2008-05-20 11:50:053楼 得分:10
    JScript code
    var MaxCount=5;//设置这个变量来控制最大长度 var MinCout=1;//设置这个变量来控制最小长度 var AlphaNumber=new RegExp("^[0-9a-z]{"+MinCout+","+MaxCount+"}$","gi"); alert(AlphaNumber.test("abcs")) alert(AlphaNumber.test("abc1111s")) var Url=/^(https?:\/\/)?(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i; alert(Url.test("aa/test.aspx")) alert(Url.test("http://192.168.1.12:8080/a/")) alert(Url.test("xxxxxxxxxx前面xxxxxxx"))
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 10:06:004楼 得分:10
    搞定基本代码:
    JScript code
    JScript codevar re = /(.*?):\/\/(?:(.*?)(?::(.*?))@)(.*?)(?::(\d+))(?:(\/.*?)(?:\?(.*?))(?:#(.*?)))$/;


    另外,查阅维基百科后更正上一帖子:
    {query}
    查询字符串的格式没有标准规定. 
    但通常是由以‘&’分隔的  <name>= <value> 二元组. (之前我说用‘&’或‘;’分隔是不对的。)

    {path}
    path是以‘/’分隔的若干节, 其中每一节可以带有参数, 
    参数部分是由‘;’开始的。如:
    /dir;param=1/subdir;param=2/file.txt;param=3

    这里的参数,语法与查询字符串类似,但它们属于URL的不同部分。
    path的每一节都可以有参数,而查询字符串在URL中只出现一次。
    =====
    上面给出的RE暂没有分析path中的参数,
    也没有把query中的每一对name和value匹配出来。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 10:07:065楼 得分:5
    我们平时遇到的绝大多数URL遵循这个格式: 
    <scheme  name> ://[userinfo@]host[:port][/ <path> [? <query> ][# <fragment> ]]

    其中:
    [scheme  name]
    模式名.  可理解为协议名称,  如  http/ftp. 

    [userinfo]
    登录信息.  格式:
    <username> [: <password> ]

    [query]
    查询字符串,  由以  &  或  ;  分隔的二元组构成.  每个二元组的格式为: 
    <name> = <value>

    [fragment]
    片段标识.  对于  HTML  文档来说就是书签  (锚定点  anchor). 

    ===
    可以根据这个格式来设计RE. 

    但不是所有的URL都遵循以上结构. 
    如  mailto:  foo@bar.com  就不同于以上格式. 

    如果需要实现通用的URL解析,  可以首先匹配scheme,  然后根据不同的scheme使用不同的RE来匹配. 
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 10:08:156楼 得分:10
    JScript code
    var re = /(.*?):\/\/(?:([^:@]+)(?::([^@]*))?@)?([^:@\/]+)(?::(\d+))?(?:(\/.*?)(?:\?(.*?))?(?:#(.*?))?)$/;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 10:08:467楼 得分:5
    引用 3 楼 showbo 的回复:
    JScript codevarMaxCount=5;//设置这个变量来控制最大长度varMinCout=1;//设置这个变量来控制最小长度varAlphaNumber=newRegExp("^[0-9a-z]{"+MinCout+","+MaxCount+"}$","gi");
    alert(AlphaNumber.test("abcs"))
    alert(AlphaNumber.test("abc1111s"))varUrl=/^(https?:\/\/)?(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i;
    alert(Url.test("aa/test.aspx"))
    alert(Url.test("http://192.168…


    学习中
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved