关于JS验证文本框输入只能输入半角,不让输入全角

来源:互联网 发布:ps源码是什么意思 编辑:程序博客网 时间:2024/06/05 04:55
 

方案1:

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

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

 

方案2:


/*
****************************
* 半角<=>全角 *
* [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>

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

原创粉丝点击