utils新增一个判断字符串是否存在的方法
This commit is contained in:
@@ -433,4 +433,46 @@ export function isJsonArrayString(str) {
|
|||||||
// 解析失败(普通字符串/非法 JSON)→ 返回 false
|
// 解析失败(普通字符串/非法 JSON)→ 返回 false
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断目标值是否包含指定字符串
|
||||||
|
* @param {string|number|array} target - 目标值(字符串/数字/数组)
|
||||||
|
* @param {string} searchStr - 要查找的子字符串
|
||||||
|
* @param {object} [options] - 可选配置
|
||||||
|
* @param {boolean} [options.ignoreCase=false] - 是否忽略大小写
|
||||||
|
* @param {boolean} [options.allowEmpty=false] - 当 searchStr 为空时,是否返回 true(默认 false)
|
||||||
|
* @returns {boolean} 是否包含指定字符串
|
||||||
|
*/
|
||||||
|
export function includesString(target, searchStr, options = {}) {
|
||||||
|
// 解构配置,设置默认值
|
||||||
|
const {
|
||||||
|
ignoreCase = false, allowEmpty = false
|
||||||
|
} = options;
|
||||||
|
|
||||||
|
// 1. 处理 searchStr 为空的情况
|
||||||
|
if (searchStr === '' || searchStr === null || searchStr === undefined) {
|
||||||
|
return allowEmpty;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 统一将目标值转为字符串(兼容数字/数组等)
|
||||||
|
let targetStr = '';
|
||||||
|
if (typeof target === 'string') {
|
||||||
|
targetStr = target;
|
||||||
|
} else if (typeof target === 'number') {
|
||||||
|
targetStr = String(target);
|
||||||
|
} else if (Array.isArray(target)) {
|
||||||
|
// 数组:拼接为字符串(也可改为 "数组中某一项包含",根据需求调整)
|
||||||
|
targetStr = target.join(',');
|
||||||
|
} else {
|
||||||
|
// 其他类型(对象/布尔等):转为字符串或返回 false
|
||||||
|
targetStr = String(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. 处理大小写忽略
|
||||||
|
const processedTarget = ignoreCase ? targetStr.toLowerCase() : targetStr;
|
||||||
|
const processedSearch = ignoreCase ? searchStr.toLowerCase() : searchStr;
|
||||||
|
|
||||||
|
// 4. 执行包含判断
|
||||||
|
return processedTarget.includes(processedSearch);
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user