-
概述
近期在项目中遇到三个问题,一是需要前端根据手机号判断运营商的场景,不考虑虚拟运行商及携号转网的情况,只能通过号段的正则表达式来判断;二是需要前端过滤用户输入内容,不允许emoji表情入库,否则数据库会出现问题;三是时间格式化处理。以下分别是三个问题的处理方法。
-
运营商判断
const getServiceProvider=(tel)=>{ const chinaTelecom = /^(133|153|173|177|180|181|189|199)\d{8}$/ //电信 const chinaUnicom = /^(130|131|132|145|155|156|166|175|176|185|186)\d{8}$/ //联通 const chinaMobile = /^(134|135|136|137|138|139|147|150|151|152|157|158|159|178|182|183|184|187|188|198)\d{8}$/ //移动 let result = { isMobile: false, operator: 'unknown' }; if (chinaTelecom.test(tel)){ result.isMobile = true; result.operator = 'China Telecom'; } else if (chinaUnicom.test(tel)){ result.isMobile = true; result.operator = 'China Unicom'; } else if (chinaMobile.test(tel)){ result.isMobile = true; result.operator = 'China Mobile'; } return result; }
-
emoji表情过滤
function filterEmoji(name) { let str = name.replace(/[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig, ""); return str; }
-
时间格式化处理
function timeFilter(time){ let date = time? new Date(time): new Date(); let month = date.getMonth()<9? `0${date.getMonth()+1}`: (date.getMonth()+1); let day = date.getDate()<10? `0${date.getDate()}`: date.getDate(); let hours = date.getHours()<10?`0${date.getHours()}`:date.getHours(); let min = date.getMinutes()<10?`0${date.getMinutes()}`:date.getMinutes(); let sec = date.getSeconds()<10?`0${date.getSeconds()}`:date.getSeconds(); return date.getFullYear()+'-'+month+'-'+day+ " " +hours+':'+min+':'+sec; }
运营商判断正则表达式&emoji表情过滤&时间格式化
最新推荐文章于 2023-11-28 13:47:08 发布