方案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>
上面的代码可以达到验证效果,不用列举。请校验。。。