const getCookie = (name) => document.cookie.match(`[;\s+]?${name}=([^;]*)`)?.pop();
// 比如cookie如下: a=b; c=d
// 使用
getCookie('c') // d其中match是字符串的原型方法。
str.match(regexp)
如果传入一个非正则表达式对象,则会隐式地使用 new RegExp(obj) 将其转换为一个 RegExp
以上,所以完全不必写一个正则,因为正则拼字符串还要使用new RegExp构造方法,然而match内部。已经隐式的判断了。
string原型上search方法同样的实现原理,因为后者指返回索引,类似indexOf,所以性能会好一些。
有点跑题,不妨跑的再远一些。。。
其实string身上的match方法实际是调用了正则原型RegExp[Symbol.match]方法。
const str = 'foo';
str.match(/foo/); // ['foo']
RegExp.prototype[Symbol.match].call(/foo/, str); //['foo']
相关博文
JS中获取cookie的最简单方式