转载自:https://segmentfault.com/a/1190000009457684
js判断输入的文字是全角还是半角?
str="中文;;a"
alert(str.match(/[\u0000-\u00ff]/g)) //半角
alert(str.match(/[\u4e00-\u9fa5]/g)) //中文
alert(str.match(/[\uff00-\uffff]/g)) //全角
js对全角与半角的相互转化
全角转换为半角
function ToCDB(str) {
var tmp = ''
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) == 12288) {
tmp += String.fromCharCode(str.charCodeAt(i) - 12256)
continue
}
if (str.charCodeAt(i) > 65280 && str.charCodeAt(i) < 65375) {
tmp += String.fromCharCode(str.charCodeAt(i) - 65248)
} else {
tmp += String.fromCharCode(str.charCodeAt(i))
}
}
return tmp
}
半角转化为全角
function ToDBC(txtstring) {
// 半角转化为全角
var tmp = ''
for (var i = 0; i < txtstring.length; i++) {
if (txtstring.charCodeAt(i) == 32) {
tmp = tmp + String.fromCharCode(12288)
}
if (txtstring.charCodeAt(i) < 127) {
tmp = tmp + String.fromCharCode(txtstring.charCodeAt(i) + 65248)
}
}
return tmp
}