JavaScript如何把用户输入的数字从全角转换为半角

clarck_913 2009-05-20 11:44:53
我写了个页面

上面有一个输入框,用户输入数字点按扭之后

可以实现翻页

但是如果用户在输入法打开并且当前输入状态为全角的时候

是不能执行操作的

因为JavaScript里不认为全角数字是数字

但是用户输入的就是一个数字,不管是全角还是半角都应该执行翻页操作

甚至用户根本就不懂得全角与半角的分别

所以我想问问各位高手有没有办法解决全角向半角的转换

谢谢
...全文
833 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
李小匪 2011-10-30
  • 打赏
  • 举报
回复
学习呢。
hookee 2009-05-20
  • 打赏
  • 举报
回复

str = DBC2SBC(str, true);

function DBC2SBC(str, flag){
var result = '';
str = str.replace(/。/g,".");
for(var i=0;i<str.length;i++){
code = str.charCodeAt(i);
if(flag){
if(code >= 65281 && code <= 65373) result += String.fromCharCode(str.charCodeAt(i) - 65248);
else if(code == 12288) result += String.fromCharCode(str.charCodeAt(i) - 12288 + 32);
else result += str.charAt(i);
}
else{
if(code >= 33 && code <= 126) result += String.fromCharCode(str.charCodeAt(i) + 65248);
else if(code == 32) result += String.fromCharCode(str.charCodeAt(i) - 32 + 12288);
else result += str.charAt(i);
}
}
return result;
}
osborn0221 2009-05-20
  • 打赏
  • 举报
回复
学习了
  • 打赏
  • 举报
回复
用JS把全角转换成半角(只允许输入数字)
<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"
>
2009-05-20
  • 打赏
  • 举报
回复

<input type="text" onchange="this.value = this.value.replace(/[0123456789]/g, function(v){return v.charCodeAt(0)-65296;});" />

s_liangchao1s 2009-05-20
  • 打赏
  • 举报
回复

<input type="text" onfocus="this.style.imeMode='disabled'" />
2009-05-20
  • 打赏
  • 举报
回复
用onchange事件,把全角替换成半角.
sunxing007 2009-05-20
  • 打赏
  • 举报
回复
收藏了。!都是好方法。!
clarck_913 2009-05-20
  • 打赏
  • 举报
回复

恩!

谢谢大家了

我刚才查资料的时候发现了一种解决方法

现在看和hookee的方法类似

结帖吧
dh20156 2009-05-20
  • 打赏
  • 举报
回复
参见http://www.jslab.org.cn的全角转半角部分(JK)


<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>

87,909

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧