/**
* Copyright (c) 2022 - present TinyVue Authors.
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
*
* Use of this source code is governed by an MIT-style license.
*
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
*
*/
/**
* 文本替换格式类型
*/
export declare const formatTypes: {
text: string;
url: string;
html: string;
tmpl: string;
};
/**
* 字符对应的字符编码
*/
export declare const escapeChars: {
'&': string;
'<': string;
'>': string;
'"': string;
"'": string;
'[': string;
']': string;
};
/**
* 判断是否为null、undefined、空字符串
*
* isNullOrEmpty('') // true
*
* @param {Object} value 需判断的对象
* @return {Boolean}
*/
export declare const isNullOrEmpty: (value: any) => boolean;
export declare const camelize: (str: any) => any;
/**
* 将字符串首写字母大写。
*
* capitalize('hello') // "Hello"
*
* @param {String} string 要转换的字符串
* @returns {String}
*/
export declare const capitalize: (str: any) => any;
export declare const hyphenate: (str: any) => any;
/**
* 解析Json字符串成对象。
*
* let str = '{ "value": "v1", "text": "t1" }'
* toJson(str) // { value: 'v1', text: 't1' }
*
* @param {String} string 要解析的Json字符串
* @returns {Object}
*/
export declare const toJson: (string: any) => any;
/**
* 计算字符串长度或所占的内存字节数。
* 默认计算方式(中文算两个长度,数字字母算一个),也可指定为 'basic','UTF-16','UTF-8',或自定义的计算规则。
*
* getLength('12ED') // => 4
* getLength('深圳') // => 4
* getLength('好a','basic') // '好a' => 2,'a' => 1
* getLength('好a','UTF-8') // 好a' => 4,'a' => 1
* getLength('好a','UTF-16') //'好a' => 4,'a' => 2
* getLength(str, function (str) {
* return (str + 'xx').length
* })
*
* UTF-8 是一种可变长度的 Unicode 编码格式,使用一至四个字节为每个字符编码
*
* 000000 - 00007F(128个代码) 0zzzzzzz(00-7F) 一个字节
* 000080 - 0007FF(1920个代码) 110yyyyy(C0-DF) 10zzzzzz(80-BF) 两个字节
* 000800 - 00D7FF 注: Unicode在范围 D800-DFFF 中不存在任何字符
* 00E000 - 00FFFF(61440个代码) 1110xxxx(E0-EF) 10yyyyyy 10zzzzzz 三个字节
* 010000 - 10FFFF(1048576个代码) 11110www(F0-F7) 10xxxxxx 10yyyyyy 10zzzzzz 四个字节
*
*
* 定义参考 http://zh.wikipedia.org/wiki/UTF-8
*
* UTF-16 大部分使用两个字节编码,编码超出 65535 的使用四个字节
*
* 000000 - 00FFFF 两个字节
* 010000 - 10FFFF 四个字节
*
* 定义参考 http://zh.wikipedia.org/wiki/UTF-16
*
* @param {String} string
* @param {String|Function} regular 长度规则:'basic'、'UTF-16'、'UTF-8'或自定义的计算规则函数
* @return {Number}
*/
export declare const getLength: (string: any, regular: any) => any;
/**
* 填充字符串,根据填充模式参数,在字符串前面或后面补充字附到指定的长度。
*
* fillChar('1', 3) // "001"
* fillChar('1', 3, true) // "100"
* fillChar('1', 3, true, ' ') // "1 "
*
* @param {String} string 被填充的字符串
* @param {Number} length 填充到某个长度
* @param {Boolean} [append=false] 是否在后面填充,默认为在前面填充
* @param {String} [chr="0"] 填充的字符,默认为0
* @returns {String}
*/
export declare const fillChar: (string: any, length: any, append: any, chr?: string) => string | undefined;
export declare const random: () => number;
/**
* 生成一个guid。
*
* guid('#') // #16722423
*
* @param {String} [prefix] guid前缀,可选值,默认为空字符串
* @param {Number} [length] 生成的guid的长度,可选值,默认为8
* @returns {String}
*/
export declare const guid: (prefix?: string, length?: number) => string;
/**
* 将HTML字符串进行编码。
*
* escapeHtml('
&&
') // "<div>&&</div>"
*
* @param {String} string 要编码的字符串
* @param {Boolean} [isReplaceSpace] 是否替换空格
* @returns {String}
*/
export declare const escapeHtml: (string: any, isReplaceSpace: any) => any;
/**
* 将URL字符串进行转义。
*
* let str = '< >& []""' + "'"
* escape(str) // "< >& []""'"
* escape(str, 'uri', true) // "%3C%20%3E%26%20%5B%5D%22%22'"
* escape(str, true) // "< >& []""'"
* escape(str, 'html', true) // "< >& []""'"
* escape(str, 'prop', true) // "< >& []""'"
*
* @param {String} string 需要转换的字符串
* @param {String} [escapeType] 转换类型,可选值:uri, html, prop
* @param {Boolean} [isReplaceSpace] 是否替换空格, 默认不替换
* @returns {String}
*/
export declare const escape: (string: any, escapeType: any, isReplaceSpace: any) => any;
/**
* 使用具体的对象字段代替字符串中的字段占位符。
*
* fieldFormat('url:{{url}}', { url: 'http://abc.com/a&b' }) // "url:http://abc.com/a&b"
* fieldFormat('url:{{#url}}', { url: 'http://abc.com/a&b' }) // "url:http://abc.com/a&b"
* fieldFormat('url:{{@url}}', { url: 'http://abc.com/a&b' }) // "url:http%3A%2F%2Fabc.com%2Fa%26b"
* fieldFormat('url:{{$url}}', { url: 'http://abc.com/a&b' }) // "url:http://abc.com/a&b"
* fieldFormat('url:{{%url}}', { url: 'http://abc.com/a&b' }) // "url:{{http://abc.com/a&b}}"
*
* @param {String} string 要替换的字符串模板
* @param {Object} data 要替换模板的数据
* @param {String} [type="html"] 替换的类型:"text"、"url"、"tmpl"、"html",默认"html"
* @returns {String}
*/
export declare const fieldFormat: (string: any, data: any, type?: string) => string | undefined;
/**
* 使用具体的值替换字符串中的数字占位符。
*
* format('{0}', 1) // "1"
* format('{0}', 1, 'text') // "1"
* format('{0}{1}', [1, 2, 'text']) // "12"
* format('age:{{age}}', { age: 20 }) // "age:20"
* format('\\{0\\}{1}', [0, 1]) // "{0}1"
* format('{0}', [{ age: 20 }]) // "{"age":20}"
* format('{0}', [ 'http://abc.com/a&b' ], 'url') // "http%3A%2F%2Fabc.com%2Fa%26b"
* format('{0}', [ '&&
' ], 'html') // "<div>&&</div>"
*
* @param {String} string 要替换的字符串模板
* @param {Object|Array|String} data 要替换模板的数据
* @param {String} [type="text"] 替换的类型:"text"、"url"、"html",默认"text"
* @returns {String}
*/
export declare const format: (string: any, data: any, type?: string) => any;
/**
* 将字符串按指定长度截断。
*
* truncate('abc', 5) // "abc"
* truncate('abc', 2) // "ab..."
*
* @param {String} string 要截断的字符串
* @param {Number} length 要截断的长度
* @param {String} [ellipsis="{0}..."] 截断类型,通常携带{0}占位符
* @returns {String}
*/
export declare const truncate: (string: any, length: any, ellipsis?: string) => any;
/**
* 尝试按指定函数转换字符串,如果转换结果为 NaN,则返回 defaultValue。
*
* tryToConvert(toInt, null, 0) // 0
*
* @param {Function} convert 指定的转换的函数
* @param {Number|String} defaultValue 若为 NaN 时,返回的缺省值
* @param {Number|String} value 要转换的字符串或多个参数
* @returns {Number|String}
*/
export declare const tryToConvert: (convert: any, defaultValue: any, ...args: any[]) => any;
/**
* 将字符串解析成十进制整数。
*
* toInt(100) // 100
* toInt('100.01') // 100
*
* @param {Number|String} value 要解析的字符串
* @returns {Number}
*/
export declare const toInt: (value: any) => number;
/**
* 尝试将字符串解析成十进制整数。如果 value 是个无效的整数,则返回 defaultValue。
*
* tryToInt(100) // 100
* tryToInt('100.01') // 100
* tryToInt(null, 100) // 100
*
* @param {Number|String} value 要解析的字符串
* @param {Number|String} defaultValue 若为 NaN 时,返回的缺省值
* @returns {Number|String}
*/
export declare const tryToInt: (value: any, defaultValue: any) => any;
/**
* 将字符串解析成数值。
*
* toNumber(100) // 100
* toNumber('100.01') // 100.01
*
* @param {Number|String} value 要解析的字符串
* @returns {Number}
*/
export declare const toNumber: (value: any) => any;
/**
* 尝试将字符串解析成数值。如果 value 是个无效的数字,则返回 defaultValue。
*
* tryToNumber(100) // 100
* tryToNumber('100.01') // 100.01
* tryToNumber(null, 100) // 100
*
* @param {Number|String} value 要解析的字符串
* @param {Number|String} defaultValue 若为 NaN 时,返回的缺省值
* @returns {Number|String}
*/
export declare const tryToNumber: (value: any, defaultValue: any) => any;
/**
* 将字符串解析成浮点数。
*
* toDecimal(100) // "100.00"
* toDecimal("100.01", 2) // "100.01"
* toDecimal(0.8 - 0.6, 2, true) // "0.2"
* toDecimal(0.8 - 0.6, 2, false) // "0.20"
*
* @param {Number|String} value 要解析的数字或字符串
* @param {Number} [fraction=2] 浮点数的小数部分,默认2位
* @param {Boolean} [isTruncate=false] 是否截断,默认为四舍五入,不截断
* @returns {String}
*/
export declare const toDecimal: (value: any, fraction?: number, isTruncate?: boolean) => number;
/**
* 尝试将字符串解析成浮点数。如果 value 是个无效的浮点数,则返回 defaultValue。
*
* tryToDecimal(100) // "100.00"
* tryToDecimal("100.01", 2) // "100.01"
* tryToDecimal(0.8 - 0.6, 2, true) // "0.2"
* tryToDecimal(0.8 - 0.6, 2, false) // "0.20"
* tryToDecimal(null, 2, false, 100) // 100
*
* @param {Number|String} value 要解析的数字或字符串
* @param {Number} [fraction=2] 浮点数的小数部分,默认2位
* @param {Boolean} [isTruncate=false] 是否截断,默认为四舍五入,不截断
* @param {Number|String} [defaultValue] 若为 NaN 时,返回的缺省值
* @returns {Number|String}
*/
export declare const tryToDecimal: (value: any, fraction: any, isTruncate: any, defaultValue: any) => any;
/**
* 将数字或字符串转换成货币格式。
*
* toCurrency(100) // "100.00"
* toCurrency(100, 2) // "100.00"
* toCurrency(1234.56) // "1,234.56"
* toCurrency(100, 2, '${0}') // "$100.00"
*
* @param {Number|String} value 要解析的数字或字符串
* @param {Number} [fraction=2] 浮点数的小数部分,默认2位
* @param {String} [placeholder] 货币符号,占位符格式,例如 "${0}"
* @param {Boolean} [isTruncate=false] 是否截断,默认为四舍五入,不截断
* @returns {String}
*/
export declare const toCurrency: (value: any, fraction: any, placeholder: any, isTruncate: any) => any;
/**
* 尝试将数字转换成货币格式。如果 value 是个无效的金额,则返回 defaultValue。
*
* tryToCurrency(100) // "100.00"
* tryToCurrency(100, 2) // "100.00"
* tryToCurrency(1234.56) // "1,234.56"
* tryToCurrency(100, 2, '${0}') // "$100.00"
* tryToCurrency(null, 3, '¥{0}', '金额错误') // "金额错误"
*
* @param {Number|String} value 要转换的数值
* @param {Number} [fraction=2] 浮点数的小数部分,默认2位
* @param {String} [placeholder] 货币符号,占位符格式,例如 "${0}"
* @param {Number|String} [defaultValue] 若为 NaN 时,返回的缺省值
* @returns {Number|String}
*/
export declare const tryToCurrency: (value: any, fraction: any, placeholder: any, defaultValue: any) => any;
/**
* 转换成布尔值或0(表示false),1(表示true)。
*
* toBoolValue(1) // 1
* toBoolValue(true) // true
* toBoolValue('true') // true
* toBoolValue({}) // true
* toBoolValue('') // false
*
* @param {Number|String|Boolean} value 要转换的值
* @returns {Boolean|number}
*/
export declare const toBoolValue: (value: any) => boolean | 0 | 1;
/**
* 将数值按百分比显示。
*
* toRate(0.1) // "10.00%"
* toRate(10, 100, 2) // "10.00%"
*
* @param {Number} value 要转换的值
* @param {Number} [total=1] 百分比基数,默认为1
* @param {Number} [fraction=2] 数值的小数部分,默认为2
* @returns {String}
*/
export declare const toRate: (value: any, total?: number, fraction?: number) => any;
/**
* 文件大小值 单位互相转换。
*
* toFileSize(1024) // "1.00KB"
* toFileSize(1024, 'B') // "1024.00B"
* toFileSize(1024, 'KB', 'B') // "1.00KB"
* toFileSize(1024, 'MB', 'KB') // "1.00MB"
*
* @param {Number} value 文件大小数值
* @param {String} unit 转换后的单位
* @param {String} [currUnit] 当前大小单位,默认为B,值可为B、KB、MB、GB、TB、PB、EB、ZB、YB
* @returns {String}
*/
export declare const toFileSize: (value: any, unit: any, currUnit: any) => any;
/**
* 文件大小值,单位自动转化,最多保留2位小数
*
* formatFileSize(17252 * 1024) // "16.84M"
* formatFileSize(200 * 1024, 'M') // "200G"
*
* @param {Number} size 文件大小数值
* @param {String} [baseUnit] 当前大小单位,默认为 B,值可为 B、K、M、G、T、P、E、Z、Y
* @returns {String} 转化后的文件大小和单位
*/
export declare const formatFileSize: (size: any, baseUnit?: string) => string;
/**
* 检查文本中是否包含韩文
* @param {String} text
*/
export declare const isKorean: (text: any) => boolean;
/**
* 对字符串进行省略截取
* @param {*} text 待处理的字符串
* @param {*} font 字符集,例如 '14px Arial'
* @param {*} w 字符串显示最大长度
* @returns obj obj.t为处理后字符串,obj.o为是否已省略标志
*/
export declare const omitText: (text: string, font: string, w: number) => {
t: string;
o: boolean;
};