Common 常用模块
常用的一些 JavaScript 方法,包含正则判断、深拷贝、URL 参数、复制文本等。
judgeRegText(text, type)
判断某个字符串是否是某种类型。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| text | String | 是 | 要判断的字符串 |
| type | String | 是 | 类型名称 |
支持的类型
| type | 说明 |
|---|---|
Chinese | 纯中文 |
chinese | 含有中文 |
email | 邮箱地址 |
userName | 用户名(6-16位,字母数字下划线) |
int | 整数 |
int+ | 正整数 |
int- | 负整数 |
pos | 正数 |
neg | 负数 |
number | 数字 |
phone | 手机号 |
idCard | 身份证号 |
url | URL 网址 |
IPv4 | IP 地址 |
hex | 16进制颜色 |
date | 日期 |
time | 时间 |
QQ | QQ号 |
Wechat | 微信号 |
licensePlate | 车牌号 |
返回值
Boolean - true 表示匹配
示例
js
Qilin.Common.judgeRegText('13800138000', 'phone') // true
Qilin.Common.judgeRegText('test@example.com', 'email') // true
Qilin.Common.judgeRegText('#ffffff', 'hex') // true
Qilin.Common.judgeRegText('你好', 'Chinese') // trueisObject(object)
判断参数是否是对象。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| object | * | 是 | 要判断的值 |
返回值
Boolean - true 表示是对象
示例
js
Qilin.Common.isObject({}) // true
Qilin.Common.isObject(null) // false
Qilin.Common.isObject([]) // falseisEmptyObject(object)
判断参数是否是空对象。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| object | * | 是 | 要判断的值 |
返回值
Boolean - true 表示是空对象
示例
js
Qilin.Common.isEmptyObject({}) // true
Qilin.Common.isEmptyObject({a: 1}) // false
Qilin.Common.isEmptyObject([]) // falseisEmpty(value)
判断参数是否为空。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| value | * | 是 | 要判断的值 |
返回值
Boolean - true 表示为空(undefined、null、空对象、空字符串)
示例
js
Qilin.Common.isEmpty(undefined) // true
Qilin.Common.isEmpty(null) // true
Qilin.Common.isEmpty({}) // true
Qilin.Common.isEmpty('') // true
Qilin.Common.isEmpty(' ') // true(空格也会被 trim)
Qilin.Common.isEmpty('hello') // falsegetUrlParamsValue(key, url)
根据地址栏 URL 的参数名获取其参数值。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 参数名 |
| url | String | 否 | URL 地址,默认当前地址栏 |
返回值
String | null - 参数值
示例
js
// 当前 URL: https://example.com?name=qilin&id=123
Qilin.Common.getUrlParamsValue('name') // 'qilin'
Qilin.Common.getUrlParamsValue('id') // '123'
// 指定 URL
Qilin.Common.getUrlParamsValue('name', 'https://example.com?name=test')
// 'test'getUrlSearchParamsKeyValue()
获取 URL 地址栏 ? 后面的全部键值对信息。
返回值
Object - { key: [...], value: [...] }
示例
js
// URL: https://example.com?name=qilin&id=123
const params = Qilin.Common.getUrlSearchParamsKeyValue()
// { key: ['name', 'id'], value: ['qilin', '123'] }getUrlSearchParamsValue(keyName)
根据 key 值获取 URL 地址栏 ? 后面的相对应的值。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| keyName | String | 是 | 键名 |
返回值
String | null - 参数值
示例
js
// URL: https://example.com?name=qilin
Qilin.Common.getUrlSearchParamsValue('name') // 'qilin'pasteText(text)
复制指定文本信息(兼容性好)。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| text | String | 是 | 要复制的文本 |
示例
js
Qilin.Common.pasteText('复制这段文字')newPasteText(text)
复制指定文本信息(新 API,需要安全上下文)。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| text | String | 是 | 要复制的文本 |
返回值
Promise - 复制成功的 Promise
示例
js
Qilin.Common.newPasteText('复制这段文字').then(() => {
console.log('复制成功')
}).catch(err => {
// 非安全域会报错,请使用 pasteText 替代
})deepCopy(sourceObj, targetObj)
对某个数据进行深拷贝操作。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sourceObj | Object/Array | 是 | 源数据 |
| targetObj | Object/Array | 是 | 目标容器({} 或 []) |
返回值
Object/Array - 拷贝后的数据
示例
js
const obj = { a: 1, b: { c: 2 } }
const copy = Qilin.Common.deepCopy(obj, {})
console.log(copy) // { a: 1, b: { c: 2 } }
console.log(copy !== obj) // true
console.log(copy.b !== obj.b) // true
const arr = [1, [2, 3]]
const arrCopy = Qilin.Common.deepCopy(arr, [])judgeEllipsisText(element)
判断某个元素文本是否溢出。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| element | Element/String | 是 | 元素节点或选择器 |
返回值
Boolean - true 表示文本溢出
示例
js
Qilin.Common.judgeEllipsisText('.text-ellipsis')
Qilin.Common.judgeEllipsisText(el)