JavaScript 项目必备的辅助函数
在处理各种 JavaScript 项目时,我经常需要一些便捷的辅助函数来简化重复性任务。以下是一些在我的项目中被证明非常有用的辅助函数。这些函数涵盖了从字符串操作到数字检查和日期格式化等一系列任务。
1. 将字符串的首字母大写
此函数接受一个字符串,并将首字母大写,同时将字符串的其余部分转换为小写。这对于格式化名称或标题特别有用。
export const capitalizeFirstLetter = (word?: string) => {
return word ? word.charAt(0).toUpperCase() + word.toLocaleLowerCase().slice(1) : '';
};
2. 将数组格式化为句子
当您有一个需要格式化为句子的字符串数组时,此函数会用逗号连接数组元素,并用“and”替换最后一个逗号。
export const formatArrayToSentence = (stringArr: string[]) => {
if (!stringArr?.length) return '';
return stringArr.join(', ').replace(/, ([^,]*)$/, ' and $1.');
};
3.格式化日期
此函数使用 moment 库来格式化日期。它可以根据 isTime 标志将日期格式化为 DD/MM/YYYY 或 HH:mm A 时间格式。
import moment from 'moment';
export const formatDate = (date: string, isTime = false) => {
if (!date) return '';
const parsedDate = moment(date);
if (isTime) return parsedDate.format('HH:mm A');
return parsedDate.format('DD/MM/YYYY');
};
4.截断文本
要将文本字符串缩短到指定长度并附加省略号 (...),请使用此函数。它可确保文本不超过所需长度。
export const truncateText = (text: string, maxLength: number) => {
if (text.length <= maxLength) return text;
return text.substring(0, maxLength) + '...';
};
5. 检查大写字母、小写字母、数字和特殊字符
这些函数使用正则表达式来检查字符串是否至少包含一个大写字母、一个小写字母、一个数字或一个特殊字符。这些函数对于密码验证特别有用。
export const containsAtleastOneUpperCase = (val: string) => /(?=.*?[A-Z])/.test(val);
export const containsAtleastOneLowerCase = (val: string) => val ? /(?=.*?[a-z])/.test(val) : false;
export const containsAtleastOneNumber = (val: string) => /(?=.*[0-9])/.test(val);
export const containsAtLeastOneSpecialChar = (val: string) => /(?=.*[$&+,:;=?@#|'<>.^*_()%!-])/.test(val);
6. 检查数字是偶数还是奇数
这些简单的函数检查数字是偶数还是奇数。
export const isEven = (number: number) => (number ? number % 2 === 0 : false);
export const isOdd = (number: number) => number % 2 !== 0;
7. 检查非空对象
此函数检查对象是否为空,这对于在对对象执行操作之前验证对象是否具有属性很有用。
export const isNonEmptyObject = (obj: Record<string, unknown>) => {
return typeof obj === 'object' && obj !== null && Object.keys(obj).length > 0;
};
结论
这些辅助函数旨在简化常见任务,提升代码可读性。将它们集成到项目中,可以节省时间并确保整个代码库的一致性。无论是格式化字符串、验证输入还是检查对象属性,这些实用程序都涵盖了日常 JavaScript 开发中必不可少的各种用例。
文章来源:https://dev.to/timmy471/essential-helper-functions-for-your-javascript-projects-4n5f