match正则匹配
var e = "www.apple.com:@baidu.com"
var match = e.match(/com/g)
console.log("match: "+match);
> "match: com,com"
match返回值问题
match的返回值是一个数组
数组的第0个元素是与整个正则表达式匹配的结果
数组的第1个元素是与第1个子表达式(也就是正则表达式第一个括号内的内容)匹配的结果
数组的第2个元素是与第2个子表达式(也就是正则表达式第一个括号内的内容)匹配的结果
以此类推
示例代码:
var e = "https://www.apple.com:@baidu.com"
var match = e.match(/^https?\:\/\/([^\/:?#]+)(?:[\/:?#]|$)/)
console.log("match: "+match);
console.log("match[0]: "+match[0]);
console.log("match[1]: "+match[1]);
console.log("match[2]: "+match[2]);
正则表达式:/^https?\:\/\/([^\/:?#]+)(?:[\/:?#]|$)/
https://jex.im/regulex/
输出:
> "match: https://www.apple.com:,www.apple.com"
> "match[0]: https://www.apple.com:"
> "match[1]: www.apple.com"
> "match[2]: undefined"
其中:
match[0]是"https://www.apple.com:@baidu.com"
和整个/^https?\:\/\/([^\/:?#]+)(?:[\/:?#]|$)/
匹配的结果:https://www.apple.com:
match[1]是"https://www.apple.com:@baidu.com"
和第1个小括号内的([^\/:?#]+)
匹配的结果:www.apple.com
match[2]是"https://www.apple.com:@baidu.com"
和第2个小括号内的(?:[\/:?#]|$)
匹配的结果:undefined
参考:
https://www.w3school.com.cn/jsref/jsref_match.asp
https://blog.csdn.net/weixin_43791776/article/details/84455293