📜  check-if-a-javascript-string-is-a-url - Javascript (1)

📅  最后修改于: 2023-12-03 14:59:55.262000             🧑  作者: Mango

检查一个JavaScript字符串是否为一个URL

在编写JavaScript时,有时需要检查一个字符串是否为一个URL。这可以通过几种方式来完成,本文将展示其中的几种方法。

方法1:使用正则表达式

JavaScript中的正则表达式可以用来匹配字符串中的特定模式。以下正则表达式可以用来检查字符串是否为一个URL:

function isURL(str) {
  const pattern = new RegExp('^(https?:\\/\\/)?'+ // 协议
    '((([a-zA-Z\\d]([a-zA-Z\\d-]{0,61}[a-zA-Z\\d])?)\\.)+[a-zA-Z]{2,}|'+ // 域名
    '((\\d{1,3}\\.){3}\\d{1,3}))'+ // 或者IP
    '(\\:\\d+)?(\\/[-a-zA-Z\\d%_.~+]*)*'+ // 端口和路径
    '(\\?[;&a-zA-Z\\d%_.~+=-]*)?'+ // 查询字符串
    '(\\#[-a-zA-Z\\d_]*)?$','i'); // 锚点
  return pattern.test(str);
}
方法2:使用URL对象

JavaScript中的URL对象提供了许多有用的方法和属性,可以轻松地解析和检查URL。以下是一个示例函数,使用URL对象检查字符串是否为URL:

function isURL(str) {
  try {
    new URL(str);
  } catch (_) {
    return false;  
  }
  return true;
}
方法3:使用字符串方法

JavaScript的字符串方法startsWith()endsWith()可以用来检查字符串是否以http://https://开头,或以常见的域名结尾,从而确定它是否为URL。以下是一个示例函数:

function isURL(str) {
  return str.startsWith('http://') || str.startsWith('https://') || 
    str.endsWith('.com') || str.endsWith('.net') || str.endsWith('.org');
}

以上是三种检查JavaScript字符串是否为URL的方法。你可以根据你的需要选择其中的一种来实现你的需求。