javascript - 如何判断输入框中的文本是否为超链接?

 Mango-家族 发布于 2022-11-09 16:33

如题,



这是u3u提供的答案
用正则:^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?$

var regex = /^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?$/;
regex.test('http://www.baidu.com/'); // true
regex.test('https://www.baidu.com/'); // true
regex.test('https://github.io/'); // true
regex.test('百度 https://baidu.com/'); // false

但是这里有一个问题,如果我输入的内容例如:

https://lalal.lalla

这样也能通过校验,请问有什么办法能够完善么?

4 个回答
  • 围观围观围观

    2022-11-12 01:46 回答
  • 只有用正则表达式,首先你要确定你需要判断链接的基本信息,然后提炼出通用的,写一个正则匹配

    var urlReg = /^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i;
    urlReg.test('https://www.google.com');

    像这样就可以了,如果不需要http协议的话,你改一下就可以了

    2022-11-12 01:46 回答
  • 你的意思应该是要判断input的文本是不是网址之类的吧。

    正则判断他后缀为.com即可 然后可以自己添加

    2022-11-12 01:46 回答
  • 用正则:^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?$

    var regex = /^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?$/;
    regex.test('http://www.baidu.com/'); // true
    regex.test('https://www.baidu.com/'); // true
    regex.test('https://github.io/'); // true
    regex.test('百度 https://baidu.com/'); // false
    2022-11-12 01:46 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有