先说一下,’\u00a0’是’nbsp’的16进制表示,其他空格也可以使用下表的值:
在此之前,看了很多用法,都是说用空格占位符或者转义字符的,但是vue中直接放在文字里只能有一个空格
我解决的方法就是把占位符或者转义字符放在标签的v-html中,这个用法才能实现多个空格
ps:vue的v-html中要用转义字符的16进制表示
同样,uni-app中text标签中有decode属性,但是我着实没用明白,空格也是用的v-html
</text><text v-html="' '"></text>
登录后复制
ps:当时我就是想用空格,所以我找了好多方法,钻了牛角尖如今终于找到了,后来想想其实给文字加一个span标签,然后加padding也能实现要的效果,毕竟当时我是想就用空格,我就不用别的,我就用空格,哈哈哈
你可以通过JavaScript中的事件监听的方式来实现在vue的input输入框中每隔两个字符加一个空格,代码如下: ``` <template><div><input type="text" @keydown="formatText" v-model="text" /></div></template>>export default { data() { return { text: '' } }, methods: { formatText(e) { let keyCode = e.keyCode let val = e.target.value.replace(/\s/g, '') let spacedVal = '' let len = 0 for (let i = 0i <val.lengthi++) { spacedVal += val.charAt(i) len++ if (len % 2 == 0 &&i != val.length - 1) { spacedVal += ' ' len = 0 } } this.text = spacedVal if(keyCode === 13){ //防止回车刷新页面 e.preventDefault() } } } } </script>``` 该代码中通过keydown事件监听输入,使用正则表达式去掉所有的空格,然后通过遍历字符串,每隔两个字符之间添加一个空格,最后将处理过的字符在绑定到v-model中,从而实现每隔两个字符在vue的input输入框中添加一个空格。 需要注意一些奇怪的问题:例如在处理keycode时有些浏览器会有问题,需要进行调试和处理。1 是的,。2 这是因为Vue.js编码规范中规定,HTML元素的属性名与属性值之间只能有一个空格隔开,如果有多个空格则会被视为语法错误。
3 如果你需要在input两个字之间添加多个空格,可以考虑使用CSS的letter-spacing属性或者在input标签内部添加空格的HTML实体符号。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)