请大虾给个判断全角半角字符的正则表达式

oldfisher 2002-09-18 01:37:48
我发现很多人推荐的
只能输入全角的:
<input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))">
并不好使

还有 谁能解释下全角半角,汉字西文的字码范围?
谢谢!
...全文
3770 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
方工 2002-09-29
  • 打赏
  • 举报
回复
正则表达式中的\u 后面跟的是以四个十六进制数字表示的unicode字符值
实际应用中大多数情况下没有必要检测输入的是全角还是半角字符,在需要限定输入值必须为数字的时候进行校验就可以了。本来汉字的123和就不能当作数字123使用,
例如
var n = 123; // ok
var n = 123; // 错误
再例
如果要用正则表达式测试字符串是否为10,100,088,990.90格式(规定最多两位小数)
str = "10,100,088,990.90";
re=/^[1-9]\d{0,2}(,\d{3})*(\.\d{1,2})?$/;
if(str.match(re)) alert("合法数字");
else alert("对不起,数字格式不合法.");
oldfisher 2002-09-29
  • 打赏
  • 举报
回复
多谢各位指点 不胜感激!
特意把帖子分数加到100以表感谢
/[\uFF00-\uFFFF]/
半角 Z: 90 全角 Z: 65338
charCodeAt(0)>0xff00
这里边的字码如 u,0x,都是什么意思?
to qiushuiwuhen(秋水无恨) 你给的那段代码只能判断字母
我输入汉字就不行了
/[\u0000-\u00FF]/ 半角符号 /[\u4E00-\u9FA5]/ 汉字
/[\uFF00-\uFFFF]/ 全角符号
如按这个范围 汉字和全角字符就没什么关系了
全角半角就是那256个ASCII码的两种状态?
欢迎讨论,马上结贴给分
分不够 我再开贴给分好不好?
qiushuiwuhen 2002-09-27
  • 打赏
  • 举报
回复
<script>
function check(str){
return str.charCodeAt(0)>0xff00
}
alert(check("a"))
alert(check("a"))
</script>
方工 2002-09-27
  • 打赏
  • 举报
回复
<script>
var str1="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var str2="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
alert(str1.length + "?" + str2.length);
var str="";
for(i=0;i<str1.length;i++){
str += "半角 " + str1.charAt(i) + ": " + str1.charCodeAt(i) + " 全角 " + str2.charAt(i) + ": " + str2.charCodeAt(i) +"<br>";

}
document.write(str);
</script>
输出:
半角 a: 97 全角 a: 65345
半角 b: 98 全角 b: 65346
半角 c: 99 全角 c: 65347
半角 d: 100 全角 d: 65348
半角 e: 101 全角 e: 65349
半角 f: 102 全角 f: 65350
半角 g: 103 全角 g: 65351
半角 h: 104 全角 h: 65352
半角 i: 105 全角 i: 65353
半角 j: 106 全角 j: 65354
半角 k: 107 全角 k: 65355
半角 l: 108 全角 l: 65356
半角 m: 109 全角 m: 65357
半角 n: 110 全角 n: 65358
半角 o: 111 全角 o: 65359
半角 p: 112 全角 p: 65360
半角 q: 113 全角 q: 65361
半角 r: 114 全角 r: 65362
半角 s: 115 全角 s: 65363
半角 t: 116 全角 t: 65364
半角 u: 117 全角 u: 65365
半角 v: 118 全角 v: 65366
半角 w: 119 全角 w: 65367
半角 x: 120 全角 x: 65368
半角 y: 121 全角 y: 65369
半角 z: 122 全角 z: 65370
半角 A: 65 全角 A: 65313
半角 B: 66 全角 B: 65314
半角 C: 67 全角 C: 65315
半角 D: 68 全角 D: 65316
半角 E: 69 全角 E: 65317
半角 F: 70 全角 F: 65318
半角 G: 71 全角 G: 65319
半角 H: 72 全角 H: 65320
半角 I: 73 全角 I: 65321
半角 J: 74 全角 J: 65322
半角 K: 75 全角 K: 65323
半角 L: 76 全角 L: 65324
半角 M: 77 全角 M: 65325
半角 N: 78 全角 N: 65326
半角 O: 79 全角 O: 65327
半角 P: 80 全角 P: 65328
半角 Q: 81 全角 Q: 65329
半角 R: 82 全角 R: 65330
半角 S: 83 全角 S: 65331
半角 T: 84 全角 T: 65332
半角 U: 85 全角 U: 65333
半角 V: 86 全角 V: 65334
半角 W: 87 全角 W: 65335
半角 X: 88 全角 X: 65336
半角 Y: 89 全角 Y: 65337
半角 Z: 90 全角 Z: 65338
oldfisher 2002-09-27
  • 打赏
  • 举报
回复
这里没有高人吗?
oldfisher 2002-09-18
  • 打赏
  • 举报
回复
大家可以看一下
上面的字母a有全角半角的分别
问一下:在存储时全角的a用几个字节?
全角半角的汉字又如何处置的?
我该如何判断他们是全角还是半角的呢?
oldfisher 2002-09-18
  • 打赏
  • 举报
回复
谢谢!
你把ASCII码以外的字符都归为两个字节长,
java中是这样处理的吗?
那我如何判断输入的字符是全角半角的呢
全角 半角
a    a
汉字   汉字
qiushuiwuhen 2002-09-18
  • 打赏
  • 举报
回复
<script language=javascript>
function check(str){
var ret=str.length
try{ret+=str.match(/[^\x00-\xff]/g).length}catch(e){}
alert(ret)
}
</script>


<TEXTAREA NAME="aa" ROWS="10" COLS="60">中文Abc</TEXTAREA>
<INPUT TYPE="button" NAME="bb" onclick='check(aa.value);' value="测试">
oldfisher 2002-09-18
  • 打赏
  • 举报
回复
/[\u0000-\u00FF]/ 半角符号 就是那256个ASCII码吧
/[\uFF00-\uFFFF]/ 全角符号
uFF00-uFFFF 这中间只有256个字符 全角字符就这几个吗?
我们用输入法时,不是有全角半角状态之分吗?
还有 java中用两个字节存放汉字,一个字节存放ASCII码
那对于全角,半角字符又分别用几个字节?
请指教
在java中计算字符串的长度是按字符个数而不是按存储长度来计算的
String str = "汉字";
int len = str.length();//len==2;
那计算字符串的存储长度时需判断每个字符是汉字,还是西文,
是全角,还是半角的了
qiushuiwuhen 2002-09-18
  • 打赏
  • 举报
回复
/[\u0000-\u00FF]/ 半角符号

/[\u4E00-\u9FA5]/ 汉字

/[\uFF00-\uFFFF]/ 全角符号
qiushuiwuhen 2002-09-18
  • 打赏
  • 举报
回复
/[\x00-\uFF]/ 符号

/[\u4E00-\u9FA5]/ 汉字

/[\uFF00-\uFFFF]/ 全角符号
方工 2002-09-18
  • 打赏
  • 举报
回复
全角字符比如java JAVA实际上就是汉字,我想已经包含在汉字范围内了。
半角 java JAVA 就是ASCII码。
实际上没有什么全角半角之分。谁见过有半角的汉字?
oldfisher 2002-09-18
  • 打赏
  • 举报
回复
谢谢 全角半角的呢?
全角半角 和 汉字的字码范围谁的大,还是有交集?
还是需要全角的编码范围才能判断
请大虾们告知
方工 2002-09-18
  • 打赏
  • 举报
回复
/[\u4E00-\u9FA5]/ 汉字范围

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧