求字节限制的js正则表达式

小可同学 2012-02-21 09:18:15
比方:限制输入在20个字节以内,onblur的时候验证
汉字或字母数字混合在20个字节内,
例如:
我123, 字节为5个,符合,
一二三四五六七八九十1,字节为21个,不符合
...全文
331 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
小昭 2012-02-28
  • 打赏
  • 举报
回复
我一般自己写验证。如果你需要插件,找个适合自己的,改改,为自己所用,以后工作就方便省事儿多了。
小可同学 2012-02-28
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ywtywt337 的回复:]

只有正则,不用js实现不了
我想你应该是用的什么验证插件吧,是不是jQuery.validator
任何一种验证插件都应该有扩展能力,用以应对你这样的特殊场景。
比如:
JScript code
jQuery.validator.addMethod('methodName',fucntion(value,element){
//...
});
[/Quote]
我用的是EasyValidtor 的一个老版本,没更新,
老版本里的源码也就俩方法,很简单。
应该没实现扩展方法,不过我可以改改他,谢谢提醒,可以试试其他插件去。
ywtywt337 2012-02-27
  • 打赏
  • 举报
回复
只有正则,不用js实现不了
我想你应该是用的什么验证插件吧,是不是jQuery.validator
任何一种验证插件都应该有扩展能力,用以应对你这样的特殊场景。
比如:
jQuery.validator.addMethod('methodName',fucntion(value,element){
//...
});
小可同学 2012-02-27
  • 打赏
  • 举报
回复
js的方法有好几种我都有,我要的是一句话的正则,非JS
licai1210 2012-02-26
  • 打赏
  • 举报
回复
function checkLength(v) {
var t = v.replace(/[\u4e00-\u9fa5]/g, '22'); //替换中文
var reg = /^\w{1,20}$/;
alert(reg.test(t));
}
checkLength("一二三四五六七八九1"); //false
//checkLength("我123");//true;
试试这个
小可同学 2012-02-26
  • 打赏
  • 举报
回复

[Quote=引用 5 楼 fengyun817 的回复:]

引用 4 楼 sammyke 的回复:

比如说吧,
<input type="text" class="input" reg="^[\s\S]{1,50}$" />
我用一个验证插件是取reg的值直接进行new Regex(reg)去验证的。
所以我要一句话的正则表达式


单纯正则不能实现。
[/Quote]
我感觉也是不能实现,但是我还是希望有人能实现以下。
[Quote=引用 6 楼 q107770540 的回复:]

我觉得2楼写的挺好
你没必要去用什么验证插件
[/Quote]
2楼的方法我以前也这么做,想实现很简单,主要是我不想去改人家的源码,
人家是blur时验证,我也只是想知道到底能不能做出来这个效果。
[Quote=引用 8 楼 zsx841021 的回复:]

引用 7 楼 zsx841021 的回复:

[A-Za-z\d\u4e00-\u9fa5]{1,20}

不好意思。。这样不对。。
[/Quote]
嗯是的
三石-gary 2012-02-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zsx841021 的回复:]

[A-Za-z\d\u4e00-\u9fa5]{1,20}
[/Quote]
不好意思。。这样不对。。
三石-gary 2012-02-24
  • 打赏
  • 举报
回复
[A-Za-z\d\u4e00-\u9fa5]{1,20}
q107770540 2012-02-24
  • 打赏
  • 举报
回复
我觉得2楼写的挺好
你没必要去用什么验证插件
fengyun817 2012-02-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sammyke 的回复:]

比如说吧,
<input type="text" class="input" reg="^[\s\S]{1,50}$" />
我用一个验证插件是取reg的值直接进行new Regex(reg)去验证的。
所以我要一句话的正则表达式
[/Quote]

单纯正则不能实现。
小可同学 2012-02-24
  • 打赏
  • 举报
回复
比如说吧,
<input type="text" class="input" reg="^[\s\S]{1,50}$" />
我用一个验证插件是取reg的值直接进行new Regex(reg)去验证的。
所以我要一句话的正则表达式
小可同学 2012-02-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fengyun817 的回复:]
JScript code


function checkLength(v)
{
var t =v.replace(/[\u4e00-\u9fa5]/g,'');//替换中文
return (v.length-t.length)*2+t.length<=20;//判断长度
}
checkLength("一二三四五六七八九十1");//false
//checkLength("我1……
[/Quote]
请你阅题仔细点,js我会,我想要的是正则表达式
求字节限制的js的正则表达式[问题点数:20分]
fengyun817 2012-02-22
  • 打赏
  • 举报
回复 1



function checkLength(v)
{
var t =v.replace(/[\u4e00-\u9fa5]/g,'');//替换中文
return (v.length-t.length)*2+t.length<=20;//判断长度
}
checkLength("一二三四五六七八九十1");//false
//checkLength("我123");//true;

三石-gary 2012-02-22
  • 打赏
  • 举报
回复
http://www.jb51.net/article/12841.htm

87,907

社区成员

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

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