⽤正则表达式限制⽂本表单的中英⽂字符个数
表单的最⼤长度属性maxlength=30限制的不管是中⽂还是英⽂的字符均为30个。所以如果处理表单的后台程序是C语⾔写的(如Thttpd 服务器下的WEB),在填充数据时会因为字符长度超过申请的变量空间⽽报错,因为⼀个中⽂字符占两个字节,所以如果maxlength=30时,只能充许输⼊15个中⽂字符。所以可以将中⽂字符置换为两个任意的英⽂字符再计算长度与maxlength⽐较,然后再截取符合需要长度。如:
<input type="text" maxlength="6" value="" οnkeyup="place(/[^\x00-\xff]/g,
'**').length>maxLength)value=value.slice(0,-1)">
\xn匹配n,其中n为⼗六进制转义值。⼗六进制转义值必须为确定的两个数字长。例如:'\x41'匹配"A "。'\x041 '则等价于'\x04 '&"1 "。正则表达式中可以使⽤ASCII编码。正则表达式提取中文字符
[^\x00-\xff]即ASCII编码不在0-255的字符