在 Node.js 的文件操作和模板匹配上,我们经常需要检测一个字符串是否包含所谓的"扩展匹配模式"。今天,我们就来深入了解一个专注于此的神器 —— is-extglob。
npm install --save is-extglob安装完成后,我们就可以在项目中引入并开始使用它了。
var isExtglob = require('is-extglob');
一旦导入,就可以直接使用 isExtglob 函数来检测字符串了。
// 当字符串包含扩展匹配模式时,返回 true console.log(isExtglob('?(abc)')); // true console.log(isExtglob('@(abc)')); // true console.log(isExtglob('!(abc)')); // true console.log(isExtglob('*(abc)')); // true console.log(isExtglob('+(abc)')); // true检测为假的例子
// 当字符串是转义的扩展匹配模式时,返回 false console.log(isExtglob('\\?(abc)')); // false console.log(isExtglob('\\@(abc)')); // false console.log(isExtglob('\\!(abc)')); // false console.log(isExtglob('\\*(abc)')); // false console.log(isExtglob('\\+(abc)')); // false // 堆代码 duidaima.com // 普通字符串或不含扩展匹配模式的字符串同样返回 false console.log(isExtglob('foo.js')); // false console.log(isExtglob('!foo.js')); // false // 其他常见的 glob 匹配模式,非扩展匹配,也会返回 false console.log(isExtglob('*.js')); // false console.log(isExtglob('**/abc.js')); // false // 以此类推...
你可以看到,isExtglob 主要用来识别包含特定语法字符的扩展匹配模式,它对于构建如构建系统、文件匹配工具等是非常有用的工具。