js 正则匹配http资源地址
时间: 2023-05-04 13:02:41 浏览: 267
在JavaScript中,我们可以使用正则表达式匹配HTTP资源地址。HTTP资源地址通常由协议、主机名、端口号、路径和查询字符串组成。
首先,我们需要定义一个正则表达式来匹配HTTP地址。以下是一个基本的表达式:
```javascript
/^http(s)?:\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?$/
```
解释一下这个表达式:
- `/^` 表示从字符串的开头匹配;
- `http(s)?` 表示匹配 http 或 https 协议;
- `:\/\/` 表示 :// 符号;
- `[\w-]+(\.[\w-]+)+` 表示主机名,可以由字母数字和连字符组成,也可以包含多个点号;
- `([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?` 表示可选的路径和查询字符串,可以出现在域名后面;
- `$/` 表示字符串的结尾。
一些例子:
```javascript
const regex = /^http(s)?:\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?$/
console.log(regex.test('http://www.example.com'));
// true
console.log(regex.test('https://www.example.com:8080/path/to/file?name=foo#bar'));
// true
console.log(regex.test('ftp://www.example.com'));
// false
```
上述正则表达式只是一个基本的HTTP地址匹配器,如果我们需要更精确的匹配,可以自定义正则表达式。
阅读全文