33 lines
1.0 KiB
TypeScript
33 lines
1.0 KiB
TypeScript
// @ts-nocheck
|
||
/**
|
||
* 检测输入值是否为正则表达式对象
|
||
* @param obj - 需要检测的任意类型值
|
||
* @returns 如果检测值是正则表达式返回 true,否则返回 false
|
||
*
|
||
* @example
|
||
* // 基础检测
|
||
* isRegExp(/abc/); // true
|
||
* isRegExp(new RegExp('abc')); // true
|
||
*
|
||
* @example
|
||
* // 非正则表达式检测
|
||
* isRegExp('hello'); // false
|
||
* isRegExp({}); // false
|
||
* isRegExp(null); // false
|
||
*
|
||
* @description
|
||
* 1. 通过 Object.prototype.toString 的可靠类型检测
|
||
* 2. 支持跨执行环境的可靠检测:
|
||
* - 浏览器多 iframe 环境
|
||
* - Node.js 的 vm 模块
|
||
* 3. 比 instanceof 检测更可靠
|
||
* 4. 支持 ES3+ 全环境兼容
|
||
*/
|
||
export function isRegExp(obj : any) : boolean {
|
||
// #ifndef APP-ANDROID
|
||
return Object.prototype.toString.call(obj) === '[object RegExp]';
|
||
// #endif
|
||
// #ifdef APP-ANDROID
|
||
return obj instanceof RegExp//Object.prototype.toString.call(obj) === '[object RegExp]';
|
||
// #endif
|
||
} |