vue 身份证号码 中间用*代替

请教各位,,从后台v-for循环出来的银行卡号码,中间用*代替,用vue是怎么做的呢

阅读 9.8k
4 个回答

使用Vue的过滤器,可以很好的解决这个问题,具体实现如下例(直接复制粘贴便可运行看到效果):

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Vue filters</title>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
    <div id="app">
        <ul>
            <li v-for="item in ID">{{item | hideMiddle}}</li>
        </ul>
    </div>
    <script type="text/javascript">
        new Vue({
            el: '#app',
            data: {
                ID: [
                "1234567897897","5648754542132"]
            },
            methods: {            
            },
            filters: {
                hideMiddle(val) {
                    return `${val.substring(0,3)}****${val.substring(val.length-3)}`
                }
            }
        })
    </script>
</body>
</html>

页面输出效果

clipboard.png

解决

<div id="app">
    <span v-for="item in tel">
        {{newItem(item)}}
    </span>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
    const tel = ['13333333333', '13333331111', '13311112222'];
    const app = new Vue({
        el: '#app',
        data: {
            tel
        },
        methods:{
            newItem(item){
                return `${item.substring(0,3)}****${item.substring(item.length-3)}`;
            }
        }
    })
</script>

原因

这个其实不是vue的问题哈,只是js问题而已

原理

我也经常会遇到这种情况
本身一个很简单的问题,但是放到一个不熟悉的环境,就不会办了..
不知道为什么会这样......

新手上路,请多包涵

Error in render: "TypeError: Cannot read property 'substring' of undefined"

我的为什么会报错,

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题