⑴ js 正则 允许半角英数字、- (减号)、_ (下划线) 允许全角文字 英数字、记号(空格除外)
varexp=/^(?:w|-| | |[u0100-uFFFF])*$/i;//姑且认为ascii以外字符全是全角,对汉字来说全覆盖,全角空格?是神马字符?用"【空格】".charCodeAt(0)获取unicode码后从范围中删除即可
console.log(exp.test("_azAZ 010-189554 好啊《书名号》?全角问号 换行"));//true
console.log(exp.test("+"));//false
console.log(exp.test(""));//false
⑵ javascript验证多少位全角半角字符
A 什么是全角和半角?
(1)全角--指一个字符占用两个标准字符位置。
汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。一般的系统命令是不用全角字符的,只是在作文字处理时才会使用全角字符。
(2)半角--指一字符占用一个标准的字符位置。
通常的英文字母、数字键、符号键都是半角的,半角的显示内码都是一个字节。在系统内部,以上三种字符是作为基本代码处理的,所以用户输入命令和参数时一般都使用半角。
B 全角与半角各在什么情况下使用?
全角占两个字节,半角占一个字节。
半角全角主要是针对标点符号来说的,全角标点占两个字节,半角占一个字节,而不管是半角还是全角,汉字都还是要占两个字节。
在编程序的源代码中只能使用半角标点(不包括字符串内部的数据)
在不支持汉字等语言的计算机上只能使用半角标点(其实这种情况根本就不存在半角全角的概念)
对于大多数字体来说,全角看起来比半角大,当然这不是本质区别了。
C 全角和半角的区别
全角就是字母和数字等与汉字占等宽位置的字。半角就是ASCII方式的字符,在没有汉字输入法起做用的时候输入的字母数字和字符都是半角的。
在汉字输入法出现的时候,输入的字母数字默认为半角,但是标点则是默认为全角,可以通过鼠标点击输入法工具条上的相应按钮来改变。
D 关于“全角”和“半角”:
全角:是指中GB2312-80(《信息交换用汉字编码字符集·基本集》)中的各种符号。
半角:是指英文件ASCII码中的各种符号。
⑶ 如何用JavaScript动态替换全角字符
怎么老是想着如何去获取键盘码之类的呢!
哎,你转变下思维嘛!
既然你是即时录入,即时判断的话,那非常简单哪!
我假设你的录入文本框是<input id=txt type=text >
//当文本框的内容改变时,自动调用该函数,这时可以即时对文本内容进行
//判断扫描,是否在输入框内有全角字符出现,如果有,则返回真,如果没有返回假,这样就可以判断是否有全角输入啦!
以下正则是把范围规定在:a-z A-Z 0-9_
<script>
function toDBC( sValue )
{
var rValue ="";
for(var i=0;i<sValue.length; i++ )
{
chCode = sValue.charCodeAt(i);
if( chCode >= 65248 && chCode <= 65375 )
{
rValue += String.fromCharCode( chCode - 65248 );
}
else if( chCode == 12288 )
{
rValue += String.fromCharCode( 32 );
}
else
{
rValue += String.fromCharCode( chCode );
}
}
return rValue;
}
document.getElementById("txt").onkeyup=function()
{
var sValue =this.value;
sValue=sValue.replace(/[\u4e00-\u9fa5]+/g ,"");
if( /[^\w]/.test( sValue ) )
{
sValue = toDBC( sValue );
}
this.value=sValue;
}
</script>