在应用中,我需要将该正则放到键值对并进行 JSON.stringify
,但这一做法会导致正则中的 \u4e00-\u9fa5
发生乱码,尝试了多种方法,但当赋值时就已经发生变化,有没有大佬知道要怎么解决?
// 当 presetRegs 作为下拉选项时,value 就已经乱码了
const presetRegs = [{ label: "文字限制(中文)", value: "/^(?:[\u4e00-\u9fa5·]{2,16})$/" }];
// 最终表单中的 expression 字段拿到的也是乱码值
const form = reactive({
...,
options: {
rules: [
{ expression: "/^(?:[一-龥·]{2,16})$/", errorMsg: "写个中文吧" }
]
}
});
form.options = JSON.stringify(form.options);
// post form
\u4e00
是汉字'一'的unicode编码,\u9fa5
是汉字'龥'的unicode编码,并没有出现乱码正则表达式也能正常运行
.codePointAt().toString(16)
方法可以返回字符的unicode编码String.prototype.codePointAt() - JavaScript | MDN