问题描述
以非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打印结果与预期一致
解决方法
- [
- '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)]
- })