本文介绍如何使用JavaScript将全角字符转换为半角,核心原理是利用Unicode编码差值65248进行转换。同时提供HTML输入框的限制方案,包括禁用输入法、限制按键仅允许数字以及拦截粘贴和拖拽内容,确保用户只能输入有效数据。
全角转半角实现
代码示例如下:
<script language=javascript>
//全角空格编码为12288,半角空格编码为32
//其余字符中,半角范围(33-126)与全角范围(65281-65374)存在固定差值:均为65248
//document.write((65281).toString(16)+"----"+(65374).toString(16)+"----"+(12288).toString(16));
String.prototype.dbc2sbc = function ()
{
return this.replace(/[\uff01-\uff5e]/g,function(a){return String.fromCharCode(a.charCodeAt(0)-65248);}).replace(/\u3000/g," ");
}
document.write("ABC 123,我们都是好朋友".dbc2sbc());
</script> 输入框限制方案
输入限制设置
HTML元素仅允许英文字符输入
代码示例如下:
<input type="text" onfocus="this.style.imeMode='disabled'" /> 利用JS实现全角至半角的转换(限定仅允许数字输入)
HTML标记
代码示例如下:
<input
onkeypress="var k=event.keyCode; return k>=48&&k<=57"
onpaste="return !clipboardData.getData('text').match(/\D/)"
ondragenter="return false" style="ime-mode:Disabled"
>