怎么正则校验输入框里是不是汉字?

shipatrioc 2002-09-15 03:41:33
在输入框里,我希望用户填入合法字符或者汉字。我这样校验:
form onsubmit="return checkString(this.dd.value);">
<input type="text" name ="dd">
<input type="submit">
</form>
<script >
<!-- 输入串中是否有非法字符-->

function checkString(str)
{
var reg = /^(\w|[^\u4E00-\u9FA5])*$/;
if(arr=str.match(reg))
{
return true;
}
else
{
alert("输入串中包含有非法字符");
return false;
}
}
但校验好象什么都能通过,各位老大,哪个地方出问题了
...全文
230 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shipatrioc 2002-09-15
  • 打赏
  • 举报
回复
谢谢秋水无限,给分了!
qiushuiwuhen 2002-09-15
  • 打赏
  • 举报
回复
wjmmml(笑着悲伤)
你用过你贴的一系列方法么?
试试看先输“悲伤”,再输“笑着”看看

所以一直不推荐这种赋值而推荐验证方法
(见贴了好多次,忍了很久才说这些话,勿怪)
wjmmml 2002-09-15
  • 打赏
  • 举报
回复
4.只能输入汉字的:
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))">
qiushuiwuhen 2002-09-15
  • 打赏
  • 举报
回复
<input type="text" name ="dd" value=中文Abc!>
<input type="submit" onclick=checkString(dd.value)>
</form>
<script >
<!-- 输入串中是否有非法字符-->

function checkString(str)
{
var reg = /^(\w|[\u4E00-\u9FA5])*$/;
if(arr=str.match(reg))
{
return true;
}
else
{
alert("输入串中包含有非法字符");
return false;
}
}
</script>
神鹰 2002-09-15
  • 打赏
  • 举报
回复
if (/[^\x00-\xff]/g.test(s)) alert("含有汉字");
else alert("全是字符");

87,907

社区成员

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

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