match()函数详解及正则表达式示例
match函数是JavaScript中用于在字符串中查找匹配正则表达式的函数。它返回字符串中第一个匹配项的位置,并可以返回捕获组的内容。
match函数有两个参数,第一个参数是正则表达式,第二个参数是可选的字符串位置。
语法:
string.match(regexp);
或
string.match(regexp, position);
其中,regexp是正则表达式对象,position是表示从哪个字符开始检索的位置,默认为0。
match函数的返回值是一个数组,数组的第一个元素是匹配结果,如果没有匹配则返回null。如果正则表达式包含了捕获组,那么数组的后面的元素就是捕获组的内容。
正则表达式的语法比较复杂,下面给出一些常见的正则表达式示例:
匹配数字:
var str = "1001 apples and 888 grapes";
var patt = /\d+/g;
var result = str.match(patt);
console.log(result); //["1001", "888"]
解释:\d表示匹配数字,+表示匹配1个或多个;g表示全局查找。
匹配手机号码:
var str = "My phone number is 13888888888";
var patt = /1[3456789]\d{9}/g;
var result = str.match(patt);
console.log(result); //["13888888888"]
解释:1表示以1开头,[3456789]表示第二位可以是3~9中的任意一个数字,\d{9}表示后面要连续匹配9个数字。
匹配邮箱:
var str = "My email address is tom@qq.com";
var patt = /\w+@\w+\.\w+/g;
var result = str.match(patt);
console.log(result); //["tom@qq.com"]
解释:\w表示匹配任意单词字符(包括数字、字母、下划线),+表示匹配1个或多个;@、.是字面匹配。
匹配URL:
var str = "Please visit my blog at https://www.example.com";
var patt = /https?:\/\/[^\s]+/g;
var result = str.match(patt);
console.log(result); //["https://www.example.com"]
解释:https?表示http或https,\/\/是匹配实际的//符号;[^\s]+表示连续匹配至少一个非空格字符。
匹配中文汉字:
var str = "这是一段中文文本";
var patt = /[\u4e00-\u9fa5]+/g;
var result = str.match(patt);
console.log(result); //["这是一段中文文本"]
解释:\u4e00-\u9fa5表示匹配所有的中文字符,包括汉字、标点符号等。
总结:match函数是JavaScript中用于查找字符串匹配正则表达式的函数,正则表达式的语法比较复杂,需要多多练习。
