日期:2014-05-16  浏览次数:20383 次

正则表达式,请帮忙修改一下
下面的代码实现的功能为: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) 该如何实现呢 ?

------解决方案--------------------
JScript code

<script>

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

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