zoukankan      html  css  js  c++  java
  • [轉]【经典问题】关于JS验证文本框输入只能输入半角,不让输入全角

    轉自:http://hi.baidu.com/wujjtest/blog/item/91f5a57291c428158701b050.html

    方案1:

    <input        onkeyup="value=value.replace(/[\uFF00-\uFFFF]/g,'')"        onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))">

    本人斗胆点评:不能转换诸如“、”等符号,函概不全。。。需要用心体会或改造。

    方案2:

    半角全角互转函数[JS版] [转]


    /*
    ****************************
    * 半角<=>全角 *
    * [NB联盟] *
    * Writer YuPing *
    ****************************
    *参数说明:
    * str:要转换的字符串
    * flag:标记,为0时半转全,为非0时全转半
    * 返回值类型:字符串
    ****************************
    */
    function DBC2SBC(str,flag) {
    var i;
    var result=';
    if (str.length<=0) {alert('字符串参数出错');return false;}
    for(i=0;i<str.length;i++)
    { str1=str.charCodeAt(i);
    if(str1<125&&!flag)
    result+=String.fromCharCode(str.charCodeAt(i)+65248);
    else
    result+=String.fromCharCode(str.charCodeAt(i)-65248);
    }
    return result;
    }
    //示例:
    alert(DBC2SBC("AAabc",0));
    document.write(DBC2SBC("abcdefg",0))

    <input type=text value="abcdefg" id=txt><input type=button value="变" onclick=txt.value=DBC2SBC(txt.value)>

    本人斗胆点评:华而不实,哗众取宠。只能转换字母。滑稽、搞笑。

    方案3:

    <script>
    var str="2003112345510DEFGHIghij9"
    var bstr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
    var gstr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
    for(i=0;i<str.length;i++)
    {
          bpos=bstr.indexOf(str.substr(i,1))
          if(bpos!=-1)
          {
            bword=bstr.substr(bpos,1)
            gword=gstr.substr(bpos,1)
            str=str.replace(new RegExp(bword,"g"),gword)
          }
    }
    alert(str)
    </script>

    本人斗胆点评:简单、效果明显。也很奏效。但需要手工添加种类,费时费力。

    方案4:(终极解决方案)

    <script>     
    //把你认为是全角的字符赋值给数组str1,就可以了 判断全角和半角了
        var     str1     = new Array("?") ;  
        var     str2     =     "abc";   
        var     re     =     /[^\x00-\x80]/; //或    /[^\0-\127]/    十进制表示
        // [^a-z]匹配不包含在范围内的
        //alert(str1.length);
    for (var i=0;i<str1.length ;i++ )
    {
        if( re.test( str1[i] ) )
        {
         alert("找到全角字符,字符为:" + str1[i] );
        }
       
    }  
    </script>

    上面的代码可以达到验证效果,不用列举。请校验。。。


  • 相关阅读:
    Spring基础知识
    Hibernate基础知识
    Struts2基础知识
    在eclipse里头用checkstyle检查项目出现 File contains tab characters (this is the first instance)原因
    java后台获取cookie里面值得方法
    ckplayer 中的style.swf 中的 style.xml 中的修改方法
    java hql case when 的用法
    Windows下Mongodb安装及配置
    Mongodb中经常出现的错误(汇总)child process failed, exited with error number
    Mac 安装mongodb
  • 原文地址:https://www.cnblogs.com/Athrun/p/1862795.html
Copyright © 2011-2022 走看看