try
--------------------------
<input type="text" id="text1">
<input type="button" value="check" onclick="alert(cDate(text1.value));">
<script language="javascript">function cDate(value){
if(!/\d{1,2}-\d{1,2}-\d{1,4}/.test(value))
return "错误的日期格式";
var arr = value.split("-");
var year = arr[2]*1>2000?arr[2]:arr[2]*1+2000;
return year + "年" + arr[1] + "月" + arr[0] + "日";
}</script>

解决方案 »

  1.   

    to wuxinlangman(无心之尘 8.14号开始学习js技术不过关不要见怪) 
    是的
    to leohuang(LEO)
    谢谢帮助~不过~有点问题。1.年份 96  -> 1996
    2.日期可以超过当月最大日期。比如可以输入 2月50日
      

  2.   

    修改一下
    <input type="text" id="text1">
    <input type="button" value="check" onclick="alert(cDate(text1.value));">
    <script language="javascript">function cDate(value){
    if(!/(((1|2)[0-9])|3[01])-((0?[1-9])|1[0-2])-\d{1,4}/.test(value))
    return "错误的日期格式";
    var arr = value.split("-");
    var year = arr[2]*1>2000?arr[2]:arr[2]*1+2000;
    return year + "年" + arr[1] + "月" + arr[0] + "日";
    }</script>
      

  3.   

    to wuxinlangman(无心之尘 8.14号开始学习js技术不过关不要见怪)
     好像不行~:(
      

  4.   

    try
    ---------------------------------------------------------------------------
    <input type="text" id="text1">
    <input type="button" value="check" onclick="alert(cDate(text1.value));"><script language="javascript">
    String.prototype.isDate=function(){
    return /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/.test(this);
    }String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g,"");
    }function cDate(value){
    value=value.trim();
    if(!/\d{1,2}-\d{1,2}-\d{1,4}/.test(value))
    return "错误的日期格式";
    var arr = value.split("-");
    var year=arr[2];
    switch(arr[2].length){
    case 1:
    case 2:
    if(arr[2]*1>30)
    year=arr[2]*1+1900;
    else
    year=arr[2]*1+2000;
    break;
    case 3:
    year="1" + arr[2];
    break;
    }
    var date = year + "-" + arr[1] + "-" + arr[0];
    if(!date.isDate())
    return "错误的日期格式";
    else
    return date;
    }
    </script>
      

  5.   

    如果年是2位数>30的按1900年的日期,<=30的按2000年的日期这个语句 if(arr[2]*1>30)你可以自己改成别的
      

  6.   

    to leohuang/wuxinlangman 
    thx!  结贴~