JavaScript 全半角转换
规律:半角空格的 charCode 为 32, 全角空格为 12288. 其他半角字符 ( 33 – 126 ) 与全角 ( 65281 – 65374 ) 的对应关系是:均相差 65248.
找好规律,代码就好写了:
同理:
上面的代码会将 33 - 126 中间的符号也转换。很多时候,这并不是我们需要的(比如将 @ 转换为 @)。下面的代码侵入性更小:
找好规律,代码就好写了:
JavaScript复制代码
- var hash = {'32' : '\u3000'};
- // 半角转全角
- function sbc2dbc(str) {
- var ret = [], i = 0, len = str.length, code, chr;
- for (; i < len; ++i) {
- code = str.charCodeAt(i);
- chr = hash[code];
- if (!chr && code > 31 && code < 127) {
- chr = hash[code] = String.fromCharCode(code + 65248);
- }
- ret[i] = chr ? chr : str.charAt(i);
- }
- return ret.join('');
- }
JavaScript复制代码
- var hash = {'12288' : ' '};
- // 全角转半角
- function dbc2sbc(str) {
- var ret = [], i = 0, len = str.length, code, chr;
- for (; i < len; ++i) {
- code = str.charCodeAt(i);
- chr = hash[code];
- if (!chr && code > 65280 && code < 65375) {
- chr = hash[code] = String.fromCharCode(code - 65248);
- }
- ret[i] = chr ? chr : str.charAt(i);
- }
- return ret.join('');
- }
JavaScript复制代码
- var hash = {};
- // 半角转全角。仅转换 [0-9a-zA-Z]
- function sbc2dbc_w(str) {
- var ret = [], i = 0, len = str.length, code, chr;
- for (; i < len; ++i) {
- code = str.charCodeAt(i);
- chr = hash[code];
- if (!chr &&
- (47 < code && code < 58 ||
- 64 < code && code < 91 ||
- 96 < code && code < 123)) {
- chr = hash[code] = String.fromCharCode(code + 65248);
- }
- ret[i] = chr ? chr : str.charAt(i);
- }
- return ret.join('');
- }
上一篇:jquery点击行单元格一个A元素赋值到同行的一个input
下一篇:给麦包包独立商城的一些建议
全部评论:
申明:本站部分文章来自网络,由于各种原因对文章的来源无从考究,如果您是“
JavaScript 全半角转换
”的原作者,若侵犯您的版权,请与我联系!在此请您原谅我的幼稚和无知!联系方法:email:ahuinan@21cn.com QQ:106494262
感谢以下网友对网站提出的建议:
1、感谢“蓝树叶kiss”网友发现一个评论漏洞。(2009-2-28)
2、感谢“陈臣”对程序优化和seo方面的建议。(2009-3-18)
感谢以下网友对网站提出的建议:
1、感谢“蓝树叶kiss”网友发现一个评论漏洞。(2009-2-28)
2、感谢“陈臣”对程序优化和seo方面的建议。(2009-3-18)
文章档案
- 作者:lifesinger
- 来源:lifesinger's blog
- 日期:2010-2-5 12:43:00
- 点击:258
网友投票(您觉得这篇文章怎样?)
请稍侯......
请稍侯......
文章阅读排行
随便看看
最新评论
- 不錯的東東,
打包demoupload.asp,js部分尾多了一個逗號
有空多交流:QQ 37787553 - 不錯的東東,
打包demoupload.asp,js部分尾多了一個逗號
有空多交流:QQ 37787553 - 站长 好!
- 网站不错<br>不知道URl是用什么生成的?
- update A
set A.OriginSalary=A.OriginSalary+B.AddSalary
from dbo.OriginSalary as A left join dbo.AddSalary as B on A.O_ID=B.O_ID - update A
set A.OriginSalary=A.OriginSalary+B.AddSalary
from dbo.OriginSalary as A left join dbo.AddSalary as B on A.O_ID=B.O_ID - 例子举得不好,为什么不直接用update解决呢?
update set A.OriginSalary=A.OriginSalary+B.AddSalary
from dbo.OriginSalary as A left join dbo.AddSalary as B on A.O_ID=B.O_ID - 例子举得不好,为什么不直接用update解决呢?
update set A.OriginSalary=A.OriginSalary+B.AddSalary
from dbo.OriginSalary as A left join dbo.AddSalary as B on A.O_ID=B.O_ID - 恭喜站长改进 支持
- 改版了? 牛叉
- 网站不错^-^ 多多向站长学习
- 212
- 啊 是