【JavaScript】match用法 | 正则匹配

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

猜你喜欢

转载自blog.csdn.net/qq_39441603/article/details/132212717