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>

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


  • 相关阅读:
    python 数据可视化(一)
    python unittest自动测试框架
    使用selenium抓取淘宝信息并存储mongodb
    python之re模块(正则表达式)
    [原] OpenGL ES 学习笔记 (二)
    [原] OpenGL ES 学习笔记 (一)
    [转] iOS开发同学的arm64汇编入门
    [转]ARM64 汇编
    [转]iOS高级调试&逆向技术-汇编寄存器调用
    [转] CGTime CMTimeRange CMTimeMapping 小结
  • 原文地址:https://www.cnblogs.com/Athrun/p/1862795.html
Copyright © 2011-2022 走看看