包含以下功能模块:1.表情符正则校验 2.特殊字符正则校验 3.比较两个日期大小 4.获取页面浏览器地址的参数 5.utf-8转十六进制编码
1:表情符正则:
const emojiReg = /[\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;
// 宣言正则不可输入表情符号
if (this.message.match(emojiReg)) {
this.$toast('不能输入非法字符,请检查!')
return
}
2:特殊字符:
const scReg = /[`!@#$%^&*()_-+=<>?:"{}|,./;'\[]·!@#¥%……&*()——-+={}|《》?:“”【】、;‘',。、]/im;
if (this.message.match(scReg )) {
this.$toast('不能输入非法字符,请检查!')
return
}
参考文献:zhuanlan.zhihu.com/p/608482587
3:比较两个日期字符串的大小
// endTime截止时间字符串
const data1 = new Date(this.issueObj.endTime)
const data2 = new Date(this.issueDoubleObj.endTime)
return data1.getTime() > data2.getTime() ? false : true
或者
使用 new Date(this.endTime).getTime() <= new Date().getTime() 和当前时间比较时间大小
4:获取页面浏览器地址的参数
方法一:
let jsonStr = window.location.hash.slice(1).split('=')[1] // 获取取浏览器传过来订单编号
var jsonObj = decodeURIComponent(jsonStr)
var url = JSON.parse(jsonObj)
this.dataObj = url
注:dataObj 为传递过来的obj对象
方法二:
const url = 'https://medium.com?name=fatfish&age=100'
console.log('url===')
console.log(this.getAllQueryParams(url))
getAllQueryParams(url) {
const searchParams = new URL(url).searchParams
return Object.fromEntries(searchParams.entries())
},
传参跳转的页面设置:
// 跨域传参
let jsonObj = {
ids: item.ids,
saleNo: item.saleNo,
}
let orderObj = JSON.stringify(jsonObj)
let params = encodeURIComponent(orderObj)
// 当前网页窗口打开外部连接
window.location.href = 'http://localhost:9021/#/serial?data=' + params
5:utf-8转十六进制编码(Hex)
var totalAmountStr = printData.totalAmount + ''
var totalAmountHex = ''
for (var i = 0; i < totalAmountStr.length; i++) {
if (totalAmountHex == '') totalAmountHex = totalAmountStr.charCodeAt(i).toString(16)
else totalAmountHex += totalAmountStr.charCodeAt(i).toString(16)
}
// 注:转换的字符是数字或者英文字母才可以用这方式
如果是中文字母转换十六进制 则需要借助表查询
中文转十六进制参考:blog.csdn.net/u013866683/…