@iimm/shared
Version:
shared utils on browser and react env
42 lines (37 loc) • 1.72 kB
JavaScript
/** 字符串是否全为中文字符 */
export var isAllChineseWord = function isAllChineseWord(str) {
return /^[\u4e00-\u9fa5]+$/.test(str);
};
/** 检查字符串中是否包含中文字符 */
export var hasChineseWord = function hasChineseWord(str) {
return /[\u4e00-\u9fa5]+/.test(str);
};
/** 将字符值转换为所有单词(首个单词或空格后面的单词)为首字母大写 */
export var capitalize = function capitalize() {
var word = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
return word.replace(/( |^)[a-z]/, function (c) {
return c.toUpperCase();
});
};
/** 将字符串转换为大驼峰样式(首字母大写) */
export var pascalCase = function pascalCase() {
var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
return str.split(/[_-]/).map(capitalize).join('');
};
/** 将字符串转换为驼峰样式(首字母样式不变) */
export var camelCase = function camelCase() {
var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
return str.replace(/[_-](\w)/g, function (all, letter) {
return letter.toUpperCase();
});
};
/** 将驼峰或大驼峰转化为使用分隔符(默认是下划线)间隔的变量(首字母小写) */
export var separatorCase = function separatorCase() {
var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '_';
var str = name || '';
if (str.length && str.slice(0, 1) === str.slice(0, 1).toUpperCase()) {
str = str.slice(0, 1).toLowerCase() + str.slice(1);
}
return str.replace(/([A-Z])/g, "".concat(separator, "$1"));
};