正则表达式,请帮忙修改一下

时间:2021-11-12 15:40:28
下面的代码实现的功能为:D-0000-123456
<script>
function check2()
{
document.getElementById("check").value=document.getElementById("check").value.replace(/[^(\w|\-)]+/,"").toUpperCase()
if (!(/^D{1}[\-]?\d{0,4}[\-]?\d{0,6}$/.test(document.getElementById("check").value)) || ((document.getElementById("check").value.length==2 || document.getElementById("check").value.length==7) && !document.getElementById("check").value.slice(-1).match(/-/)) || ((document.getElementById("check").value.length > 2 && document.getElementById("check").value.length < 7) && document.getElementById("check").value.slice(-1).match(/-/)))
        {
         document.getElementById("check").value=document.getElementById("check").value.slice(0,-1)
        }
}
</script>

问题: 
    我现在要实现格式为 :D-0000-123456  (123456后六位现在只能输入数字,现在想第一位也就是“1”那个位置也能输入字母X,况且只能输入字母X) 该如何实现呢 ?

14 个解决方案

#1



<script>


/^D{1}[\-]?\d{0,4}[\-]?X\d{0,5}$/
</script>

#2



<script>

/^D{1}[\-]?\d{0,4}[\-]?[X0-9]\d{0,5}$/
</script>



这个是能输入X0-9,上面是只能X

#3


不行啊,改成这样后 连第一个字母D都输入不进去了,麻烦再帮我改一改吧  谢谢了

#4


<td width="550" height="18"><input id="check" name="guider_id" type="text"  onkeyup="check2()"/> 
*<span class="style5">导游证号必须是如下格式:D-1234-123456</span></td>


这是调用的页面

#5


/^D\-\d{0,4}\-?[\dXx]?\d{0,5}$/

#6



var re=/^[D]+[\-]+[\d{0,4}]+[\-]+[X0-9]{1}\d{0,5}$/

#7


 function check2(value){
 var re=/^[D]+[\-]+[\d{0,4}]+[\-]+[X0-9]{1}\d{5}$/
 if(!re.test(value)){
 ShowMsg1.innerHTML="格式不对";
 }
 else{ShowMsg1.innerHTML="格式正确";}
 }

调用:

 <input id="check" name="guider_id" type="text" onKeyPress="check2(this.value)"/>
 <div id="ShowMsg1"></div>

#8


//下面这个正则匹配格式是:D-0000(这里可以1-4个数字)-X12345(这里可以1-6个数字或含有X)
var re=/^[D]+[\-]+[\d{1,4}]+[\-]+[X0-9]{0,1}\d{0,5}$/
//下面这个正则匹配格式是:D-0000(这里可以1-4个数字)-X12345(这里可以2-6个数字或第一位为X)
var re=/^[D]+[\-]+[\d{1,4}]+[\-]+[X0-9]{1}\d{0,5}$/
//下面这个正则匹配格式是:D-0000(这里可以1-4个数字)-X12345(这里只可以6个数字或第一位为X)
var re=/^[D]+[\-]+[\d{1,4}]+[\-]+[X0-9]{1}\d{5}$/

#9


//下面这个正则匹配格式是:D-0000(这里可以1-4个数字)-X12345(这里可以1-6个数字或含有X) 
var re=/^[D]+[\-]+[\d{1,4}]+[\-]+[X0-9]{0,1}\d{0,5}$/ 
//下面这个正则匹配格式是:D-0000(这里可以1-4个数字)-X12345(这里可以2-6个数字或第一位为X) 
var re=/^[D]+[\-]+[\d{1,4}]+[\-]+[X0-9]{1}\d{0,5}$/ 
//下面这个正则匹配格式是:D-0000(这里可以1-4个数字)-X12345(这里只可以6个数字或第一位为X) 
var re=/^[D]+[\-]+[\d{1,4}]+[\-]+[X0-9]{1}\d{5}$/ 

这是说明
看你要的是哪一种

#10


/^D-?\d{0,4}-?[X0-9]\d{0,5}$/

#11


我的愿望是这种格式

在<input id="check" name="guider_id" type="text" > 里输入:


D-0000(必须是4个数字)-123456(必须是6个数字或第一位是X后五位是数字)中间的那些“-”的位置也不能变
举例:D-0000-123456  或 D-0000-X23456    其他的字母都输入不进去

#12


var re=/^[D]+[\-]+[\d{1,4}]+[\-]+[X0-9]{1}\d{5}$/ 
这个就符合了

#13


就是我上面写的三个正则最后的一个就是实现你的要效果

#14



求后面5位数可以输入数字或字母的正则表达式


#1



<script>


/^D{1}[\-]?\d{0,4}[\-]?X\d{0,5}$/
</script>

#2



<script>

/^D{1}[\-]?\d{0,4}[\-]?[X0-9]\d{0,5}$/
</script>



这个是能输入X0-9,上面是只能X

#3


不行啊,改成这样后 连第一个字母D都输入不进去了,麻烦再帮我改一改吧  谢谢了

#4


<td width="550" height="18"><input id="check" name="guider_id" type="text"  onkeyup="check2()"/> 
*<span class="style5">导游证号必须是如下格式:D-1234-123456</span></td>


这是调用的页面

#5


/^D\-\d{0,4}\-?[\dXx]?\d{0,5}$/

#6



var re=/^[D]+[\-]+[\d{0,4}]+[\-]+[X0-9]{1}\d{0,5}$/

#7


 function check2(value){
 var re=/^[D]+[\-]+[\d{0,4}]+[\-]+[X0-9]{1}\d{5}$/
 if(!re.test(value)){
 ShowMsg1.innerHTML="格式不对";
 }
 else{ShowMsg1.innerHTML="格式正确";}
 }

调用:

 <input id="check" name="guider_id" type="text" onKeyPress="check2(this.value)"/>
 <div id="ShowMsg1"></div>

#8


//下面这个正则匹配格式是:D-0000(这里可以1-4个数字)-X12345(这里可以1-6个数字或含有X)
var re=/^[D]+[\-]+[\d{1,4}]+[\-]+[X0-9]{0,1}\d{0,5}$/
//下面这个正则匹配格式是:D-0000(这里可以1-4个数字)-X12345(这里可以2-6个数字或第一位为X)
var re=/^[D]+[\-]+[\d{1,4}]+[\-]+[X0-9]{1}\d{0,5}$/
//下面这个正则匹配格式是:D-0000(这里可以1-4个数字)-X12345(这里只可以6个数字或第一位为X)
var re=/^[D]+[\-]+[\d{1,4}]+[\-]+[X0-9]{1}\d{5}$/

#9


//下面这个正则匹配格式是:D-0000(这里可以1-4个数字)-X12345(这里可以1-6个数字或含有X) 
var re=/^[D]+[\-]+[\d{1,4}]+[\-]+[X0-9]{0,1}\d{0,5}$/ 
//下面这个正则匹配格式是:D-0000(这里可以1-4个数字)-X12345(这里可以2-6个数字或第一位为X) 
var re=/^[D]+[\-]+[\d{1,4}]+[\-]+[X0-9]{1}\d{0,5}$/ 
//下面这个正则匹配格式是:D-0000(这里可以1-4个数字)-X12345(这里只可以6个数字或第一位为X) 
var re=/^[D]+[\-]+[\d{1,4}]+[\-]+[X0-9]{1}\d{5}$/ 

这是说明
看你要的是哪一种

#10


/^D-?\d{0,4}-?[X0-9]\d{0,5}$/

#11


我的愿望是这种格式

在<input id="check" name="guider_id" type="text" > 里输入:


D-0000(必须是4个数字)-123456(必须是6个数字或第一位是X后五位是数字)中间的那些“-”的位置也不能变
举例:D-0000-123456  或 D-0000-X23456    其他的字母都输入不进去

#12


var re=/^[D]+[\-]+[\d{1,4}]+[\-]+[X0-9]{1}\d{5}$/ 
这个就符合了

#13


就是我上面写的三个正则最后的一个就是实现你的要效果

#14



求后面5位数可以输入数字或字母的正则表达式