1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > vue自定义指令添加 input框输入全角字符时触发该指令转化为半角字符

vue自定义指令添加 input框输入全角字符时触发该指令转化为半角字符

时间:2019-01-07 16:43:36

相关推荐

vue自定义指令添加 input框输入全角字符时触发该指令转化为半角字符

v-angle // input框输入全角字符时触发该指令转化为半角字符

Vue.directive('angle', {inserted: function (el, binding, vnode) {el.children[0].value = binding.valuelet angleValue = el.children[0]// console.log(el)// console.log(binding)// console.log(vnode)// // vnode.data.model.callback(angleValue.value)// console.log(angleValue.value)el.addEventListener('keyup', function (e) {e = e || window.event// console.log(e)// // console.log(e.key)let str = angleValue.valuelet tmp = ''str = str.replace(/:/g, ':')str = str.replace(/。/g, '.')str = str.replace(/“/g, '"')str = str.replace(/”/g, '"')str = str.replace(/【/g, '[')str = str.replace(/】/g, ']')str = str.replace(/《/g, '<')str = str.replace(/》/g, '>')str = str.replace(/,/g, ',')str = str.replace(/?/g, '?')str = str.replace(/、/g, ',')str = str.replace(/;/g, ';')str = str.replace(/(/g, '(')str = str.replace(/)/g, ')')str = str.replace(/‘/g, "'")str = str.replace(/’/g, "'")str = str.replace(/『/g, '[')str = str.replace(/』/g, ']')str = str.replace(/「/g, '[')str = str.replace(/」/g, ']')str = str.replace(/﹃/g, '[')str = str.replace(/﹄/g, ']')str = str.replace(/〔/g, '{')str = str.replace(/〕/g, '}')str = str.replace(/—/g, '-')str = str.replace(/·/g, '.')/* 正则转换全角为半角 */for (var i = 0; i < str.length; i++) {if (str.charCodeAt(i) === 12288) {tmp += String.fromCharCode(str.charCodeAt(i) - 12256)continue}if (str.charCodeAt(i) > 65280 && str.charCodeAt(i) < 65375) {tmp += String.fromCharCode(str.charCodeAt(i) - 65248)} else {tmp += String.fromCharCode(str.charCodeAt(i))}}// console.log(angleValue.value)// console.log(binding)// console.log(vnode)vnode.data.model.callback(tmp)})}})

使用

<el-inputv-angle="value"v-model="value"/>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。