比方:限制输入在20个字节以内,onblur的时候验证
汉字或字母数字混合在20个字节内,
例如:
我123, 字节为5个,符合,
一二三四五六七八九十1,字节为21个,不符合

解决方案 »

  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;
      

  2.   

    请你阅题仔细点,js我会,我想要的是正则表达式
    求字节限制的js的正则表达式[问题点数:20分]
      

  3.   

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

  4.   


    我感觉也是不能实现,但是我还是希望有人能实现以下。
    2楼的方法我以前也这么做,想实现很简单,主要是我不想去改人家的源码,
    人家是blur时验证,我也只是想知道到底能不能做出来这个效果。
    嗯是的
      

  5.   

            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;
    试试这个
      

  6.   

    js的方法有好几种我都有,我要的是一句话的正则,非JS
      

  7.   

    只有正则,不用js实现不了
    我想你应该是用的什么验证插件吧,是不是jQuery.validator
    任何一种验证插件都应该有扩展能力,用以应对你这样的特殊场景。
    比如:
    jQuery.validator.addMethod('methodName',fucntion(value,element){
    //...
    });
      

  8.   

    我用的是EasyValidtor 的一个老版本,没更新,
    老版本里的源码也就俩方法,很简单。
    应该没实现扩展方法,不过我可以改改他,谢谢提醒,可以试试其他插件去。