请问 以非0开头,个位不是0或5的整数正则该怎么写?

发布于 2022-09-12 01:08:33 字数 1070 浏览 17 评论 0

问题描述

以非0开头,个位不是0或5的正则该怎么写?

问题出现的环境背景及自己尝试过哪些方法

前端用的vue,想要学习下正则

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

<html>

<head>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>

<body>
    <div id="app-6">
        <p>{{ message }}</p>
        <input  v-model="message">
    </div>
</body>

<script>
    var app6 = new Vue({
        el: '#app-6',
        data: {
            message: ''
        },
        watch:{
            message: function(val){
                let reg = /^[1-9]\d*[^0|5]$/;
                let result1 = reg.test(val);
                console.log(val);
                console.log(result1);
            }
        }
    })
</script>

</html>

你期待的结果是什么?实际看到的错误信息又是什么?

期待结果:输入第一位不是0(只有一位的时候可以为0),个位不是0或5的整数,控制台打印 true,否则打印 false
比如
01,10,15,02打印false
0,1,2,14,17,22打印true

实际看到的错误:
输入1的时候控制台打印了false,输入12的时候控制台打印true
输入15,20,012打印结果与预期一致

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

罪歌 2022-09-19 01:08:33

image.png

[
    '0','5','05','01','11','15','10','121','125','140','040',
    '0','10','15','02',
    '1','2','14','17','22'
].map(v=>{
    return [v, /(^[1-9][0-9]*[1-46-9]$)|(^[1-46-9]$)/.test(v)]
})

更新时间:2020年2月23日
哇,难受,我答完之后你居然改题了。

[
    '0','5','05','01','11','15','10','121','125','140','040',
    '01','10','15','02',
    '0','1','2','14','17','22'
].map(v=>{
    return [v, /(^[1-9][0-9]*[1-46-9]$)|(^[0-46-9]$)/.test(v)]
})

(^[1-46-9]$) 改为 (^[0-46-9]$)

旧城空念 2022-09-19 01:08:33

regex11.png

你这问题描述明显有问题,一位整数的时候,0和5是true还是false?

以下三个正则都可以:

^(?:[1-9]\d*[1-46-9]|[0-46-9])$
^(?:[1-9]\d*[^\D05]|[^\D5])$
^((?!.*[05]$)(?:[1-9]\d*)|0)$
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文