`
孙玉_1987
  • 浏览: 53656 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

验证url合法性的正则表达式

 
阅读更多
今天写代码的时候,需要一个这样的验证,结果网上搜了一通,绝大多数都不靠谱。
终于搞了一个下面的,不过对于没有http://这种协议头的依然认为正确的url,我自己的需求是不认为正确,所以小改了一下下,JAVA代码如下:
public static boolean checkUrl(String url){
return url.matches("^((https|http|ftp|rtsp|mms)?://)"
     + "+(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?"
     + "(([0-9]{1,3}\\.){3}[0-9]{1,3}"
     + "|"
     + "([0-9a-z_!~*'()-]+\\.)*"
     + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\\."
     + "[a-z]{2,6})"
     + "(:[0-9]{1,4})?"
     + "((/?)|"
     + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$");
}
分享到:
评论
4 楼 jklag133 2017-07-26  
"http//www.ftchinese.com/story/001051431"  http后面没有冒号当然有问题
3 楼 mrwjx 2014-05-29  
"http//www.ftchinese.com/story/001051431" 这个URL验证不通过,但肯定是合法的
2 楼 sh747665463 2012-10-16  
你这个校验不了有端口的url,我网上找了一个也不错
 String regEx = "^(http|https|ftp)\\://([a-zA-Z0-9\\.\\-]+(\\:[a-zA-" 
            + "Z0-9\\.&%\\$\\-]+)*@)?((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{" 
            + "2}|[1-9]{1}[0-9]{1}|[1-9])\\.(25[0-5]|2[0-4][0-9]|[0-1]{1}" 
            + "[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|" 
            + "[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\\.(25[0-5]|2[0-" 
            + "4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0" 
            + "-9\\-]+\\.)*[a-zA-Z0-9\\-]+\\.[a-zA-Z]{2,4})(\\:[0-9]+)?(/" 
            + "[^/][a-zA-Z0-9\\.\\,\\?\\'\\\\/\\+&%\\$\\=~_\\-@]*)*$"; 
,经检验可用
1 楼 marc0658 2012-06-18  
总算找到一个不坑爹的。

相关推荐

    正则表达式大全.docx

    1. 用户名验证:`/^[a-z0-9_-]{3,16}$/` - 这个正则表达式用于检查用户名是否合法,它只接受小写字母、数字、下划线和破折号,且长度在3到16个字符之间。 2. 密码验证:`/^[a-z0-9_-]{6,18}$/` - 类似于用户名,但...

    正则表达式 Java 判断字串是否合理

    `checkURL`方法用于验证URL格式是否正确,其正则表达式为: ```java "[a-zA-z]+://[^\\s]*" ``` 这个表达式检查URL是否以合法的协议(如http、https等)开头,并且后面不包含空格。 ### 9. IP地址验证 IP地址的...

    java 银行卡 验证 正则表达式使用

    在"java 银行卡 验证 正则表达式使用"这个主题中,我们将深入探讨如何利用正则表达式进行银行卡、手机号码和邮箱以及URL地址的有效性验证。下面将详细介绍这些知识点。 首先,银行卡验证。银行卡号通常由一系列数字...

    表单验证(用到正则表达式)

    除了基本的验证,我们还可以使用正则表达式进行更复杂的验证,比如限制密码的复杂性(包含大写字母、小写字母、数字和特殊字符),验证电话号码格式,或者检查URL的有效性等。正则表达式的灵活性和强大功能使得它在...

    正则表达式经典实例

    - **合法性检查**:例如,如何使用正则表达式验证电子邮件地址的有效性,确保符合标准格式。 - **格式化操作**:例如,如何将日期字符串转换为统一格式,或者去除字符串中的空白字符等。 - **文本处理**:例如,...

    JS正则表达式大全【6】

    接着,文章展示了如何使用正则表达式校验移动手机号码的合法性。传统的校验方法可能需要分步骤检查数字、位数以及第三位的要求。但使用正则表达式,我们只需要定义一个模式匹配串`var reg=/13[5,6,7,8,9]\d{8}/;`...

    c#正则表达式整理验证数据和邮箱

    在编程领域,C#语言提供了一种强大...通过熟练掌握这些知识点,开发者可以更高效地处理字符串和实现数据的合法性验证。在实际编程中,应结合具体需求灵活运用正则表达式,同时注意性能优化,以提升代码质量和运行效率。

    最实用最全面的正则表达式

    - **应用场景**: 验证URL的有效性。 - **局限性**: 这个表达式较为简单,只能处理一些基本的URL格式。 - **解释**: `[a-zA-z]+://`匹配协议名,`[^s]*`匹配非空白字符。 #### 九、匹配账号合法性 **正则表达式**: `...

    C#利用正则表达式验证网址

    总结来说,C#通过正则表达式验证URL是一项基本而重要的任务,可以有效地防止非法数据输入,提高应用的安全性和用户体验。正确理解和运用正则表达式,对于提升软件质量具有重大意义。通过不断学习和实践,你可以掌握...

    asp.ne常用正则表达式大全

    此正则表达式可以确保姓名只包含合法的字符,并且长度适中,适用于大部分姓名格式。 #### URL验证 - **正则表达式**: ```regex ^(http|https|ftp)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?\/?([a...

    正则表达式的8个示例下载

    与用户名类似,这个正则表达式用于检查密码的合法性。密码必须包含6到18个字符,同样允许使用小写字母、数字、下划线和破折号。 3. 匹配一个 Hex 值:`/^#?([a-f0-9]{6}|[a-f0-9]{3})$/ 此正则表达式用于匹配一个...

    JS验证URL正则表达式.txt

    ### 一、JS验证URL正则表达式 #### 1. 正则表达式的结构分析 在给定的部分内容中,定义了一个JavaScript函数`functionIsURL(str_url)`,该函数利用正则表达式来验证传入的字符串是否为一个合法的URL。 ##### 正则...

    javascript数据校验正则表达式

    这个正则表达式确保了邮箱地址的基本结构,但可能无法涵盖所有合法的邮箱格式。 2. 电话号码验证(以中国大陆为例): ```javascript function validatePhoneNumber(phone) { const regex = /^1[3-9]\d{9}$/; ...

    正则表达式案例,正则表达式规范

    通过以上案例和规范的详细介绍,我们可以看到正则表达式在处理字符串时的强大功能和灵活性。在实际开发过程中,合理运用这些正则表达式可以极大地提高代码效率和质量。希望本篇介绍能帮助大家更好地理解和掌握正则...

    正则表达式以及相关的用法举例说明

    ### 正则表达式及其应用...通过这些示例,我们可以看到正则表达式的强大功能和灵活性,它可以帮助开发者高效地完成各种字符串匹配任务。希望这些示例能为你提供一些灵感,并激发你更深入地探索正则表达式的奇妙世界。

    文本框输入限制(正则表达式)

    使用正则表达式`[^\w\.\/]`来排除字母、数字、下划线以及点和斜杠之外的所有字符,保持输入框内容为英文字符或特定符号组合,适合邮箱或URL输入框。 ### 6. 自定义字符限制 ```html (/[^\d|chun]/g,'')"> ``` 此...

    常用正则表达式大全

    **评注**:这部分提供了使用正则表达式进行数据验证的一些常见案例,适用于Web开发中的表单验证场景。 以上列举的正则表达式涵盖了多个应用场景,包括文本处理、数据验证等,对于开发者来说是非常有价值的工具。在...

Global site tag (gtag.js) - Google Analytics