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个子表达式(也就是正则表达式第1个括号内的部分)相对应的内容
数组的第2个元素是 匹配结果中 与第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:
中 和第1个小括号内的([^\/:?#]+)
相对应的部分:www.apple.com
match[2]是https://www.apple.com:
中 和第2个小括号内的(?:[\/:?#]|$)
相对应的部分:undefined
再例如
var e = "abcdx.efghx"
var match = e.match(/efg(.x)/)
console.log("match: "+match);
console.log("match[0]: "+match[0]);
console.log("match[1]: "+match[1]);
console.log("match[2]: "+match[2]);
输出:
> "match: efghx,hx"
> "match[0]: efghx"
> "match[1]: hx"
> "match[2]: undefined"
参考:
https://www.w3school.com.cn/jsref/jsref_match.asp
https://blog.csdn.net/weixin_43791776/article/details/84455293