java/Kotlin/android 判断是否是url 的正则

//域名后缀,需要可以添加
   private static final String[] come = {
            "top", "com.cn", "com", "net", "cn", "cc", "gov", "cn", "hk"
    };

   public static boolean isWebUrl(String url) {
        StringBuilder sb = new StringBuilder();
        sb.append("(");
       for (String anExt : come) {
           sb.append(anExt);
           sb.append("|");
       }
        sb.deleteCharAt(sb.length() - 1);
        sb.append(")");
        String pattern = "((https?|s?ftp|irc[6s]?|git|afp|telnet|smb)://)?((\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})|((www\\.|[a-zA-Z\\.\\-]+\\.)?[a-zA-Z0-9\\-]+\\." + sb.toString() + "(:[0-9]{1,5})?))((/[a-zA-Z0-9\\./,;\\?'\\+&%\\$#=~_\\-]*)|([^\\u4e00-\\u9fa5\\s0-9a-zA-Z\\./,;\\?'\\+&%\\$#=~_\\-]*))";
        return Pattern.compile(pattern).matcher(url).matches();
    }

Kotlin 代码

val a= arrayOf(  "top", "com.cn", "com", "net", "cn", "cc", "gov", "cn", "hk");

fun getCompleteUrl(text: String): Boolean {
    var sb = StringBuilder();
    sb.append("(");
    for (f in a) {
        sb.append(f);
        sb.append("|");
    }
    sb.deleteCharAt(sb.length - 1);
    sb.append(")");

    val p = Pattern.compile("((https?|s?ftp|irc[6s]?|git|afp|telnet|smb)://)?((\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})|((www\\.|[a-zA-Z\\.\\-]+\\.)?[a-zA-Z0-9\\-]+\\." + sb.toString() + "(:[0-9]{1,5})?))((/[a-zA-Z0-9\\./,;\\?'\\+&%\\$#=~_\\-]*)|([^\\u4e00-\\u9fa5\\s0-9a-zA-Z\\./,;\\?'\\+&%\\$#=~_\\-]*))", Pattern.CASE_INSENSITIVE);
    val matcher = p.matcher(text);
    return matcher.matches()
}

能满足百分之九十的需求。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值