📅  最后修改于: 2023-12-03 15:40:33.568000             🧑  作者: Mango
当处理字符串时,有时需要检查字符串中是否包含 URL。在 JavaScript 中,可以使用正则表达式来检查字符串中是否包含 URL。下面是一个简单的 JavaScript 函数,可以检查字符串中是否包含 URL。
function containsURL(str) {
const regexp = /(http|https)?(:\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
return regexp.test(str);
}
该函数使用正则表达式来检查字符串中是否包含 URL。如果字符串中包含 URL,则该函数返回 true,否则返回 false。
使用该函数很简单,只需将字符串作为参数传递给函数即可:
const str = 'This is a string containing https://www.example.com URL';
if (containsURL(str)) {
console.log('String contains URL');
} else {
console.log('String does not contain URL');
}
上面的代码将输出 "String contains URL",因为字符串包含 URL。
在正则表达式中,使用了多个选项,它们分别表示 URL 的各个部分。下面是对正则表达式的解释:
(http|https)?
: 匹配 http 或 https,? 表示该部分可以出现零次或一次(:\/\/)?
:匹配 ://,? 表示该部分可以出现零次或一次(\w+:{0,1}\w*@)?
:匹配用户名和密码,该部分可以包含字母、数字和特殊字符(_、-、:),: 表示 : 可以出现或不出现,@ 表示 @ 可以出现或不出现(\S+)
:匹配域名(:[0-9]+)?
:匹配端口号,? 表示该部分可以出现零次或一次(\/|\/([\w#!:.?+=&%@!\-\/]))?
:匹配路径,? 表示该部分可以出现零次或一次这样,我们就可以使用该函数来检查字符串中是否包含 URL,从而进行相应的操作了。