免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: qingmedia
打印 上一主题 下一主题

[正则]谁能给个把全角数字12345转为半角数字12345的函数表达式? [复制链接]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
11 [报告]
发表于 2005-11-29 23:14 |只看该作者
原帖由 hightman 于 2005-11-29 22:16 发表
耍酷了,我也发一个,一句话,比较全,也能替换大部分全角符号为半角符号,不支持汉字数字替换.

但在效率上没有过多的考虑,有兴趣的可以比较试试,代码如下:

[code]
$str = "0123ABC\", ...


这个还要看是NFSA还是DFSA,NFSA一般化费时间多一些。

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
12 [报告]
发表于 2005-11-29 23:19 |只看该作者
提供一个js或者vs版本的,绝对好用,把下面的代码直接拷贝到test.html,查看就可以看到绝好的实际效果。
  1. <script>
  2. /*
  3. ****************************
  4. *     半角<=>全角    *
  5. * [NB联盟] *
  6. * Writer YuPing *
  7. ****************************
  8. * 参数说明:
  9. * str:要转换的字符串
  10. * flag:标记,为0时半转全,为非0时全转半
  11. * 返回值类型:字符串
  12. ****************************
  13. */
  14. function DBC2SBC(str,flag) {
  15. var i;
  16. var result='';
  17. if (str.length<=0) {alert('字符串参数出错');return false;}
  18. for(i=0;i<str.length;i++)
  19. { str1=str.charCodeAt(i);
  20. if(str1<125&&!flag)
  21. result+=String.fromCharCode(str.charCodeAt(i)+65248);
  22. else
  23. result+=String.fromCharCode(str.charCodeAt(i)-65248);
  24. }
  25. return result;
  26. }
  27. //示例:
  28. alert(DBC2SBC("AAabc",0));
  29. document.write(DBC2SBC("abcdefg",0))
  30. </script>
  31. <input type=text value="abcdefg" id=txt><input type=button value="变" onclick=txt.value=DBC2SBC(txt.value)>


  32. <script language="vbscript">
  33. '****************************
  34. '*     半角<=>全角    *
  35. '* [NB联盟] *
  36. '* Writer YuPing *
  37. '****************************
  38. '* 参数说明:
  39. '* str:要转换的字符串
  40. '* flag:标记,为0时半转全,为非0时全转半
  41. '* 返回值类型:字符串
  42. '****************************
  43. function DBC2SBC(str,flag)
  44. dim i
  45. if len(str)<=0 then
  46. msgbox '字符串参数出错'
  47. exit function
  48. end if
  49. for i=1 to len(str)
  50. str1=asc(mid(str,i,1))
  51. if str1>0 and str1<=125 and not flag then
  52. dbc2sbc=dbc2sbc&chr(asc(mid(str,i,1))-23680)
  53. else
  54. dbc2sbc=dbc2sbc&chr(asc(mid(str,i,1))+23680)
  55. end if
  56. next
  57. end function
  58. '示例:
  59. alert(dbc2sbc("AB",1))
  60. </script>
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP