需求是:输入的内容去首尾空格长度不能为0.
内容注意除了空格外可以中文,字母数字,有HTML代码,HTML代码...总之只要去了空格后长度不能为0.
要求是正则表达式,不是length方法

为什么下面的验证能不通过?
function confirmSubmit(){
    var _reg = /^\S{1,}$/;
    if (window.confirm('您确认要提交编辑吗?')) {
        var _check = true;
        if (!(_reg.test($.trim($('#name').val())))) {
            $('#checkName').html("*长度必须在大于1");
            _check = false;
        }else{
            $('#checkName').html("√");
}
        if (!(_reg.test($.trim($('#detail').val())))) {
            $('#checkDetail').html("*长度必须在大于1");
            _check = false;
        }else{
            $('#checkDetail').html("√");
}
        return _check;
    }
return false;
}这里有其他的疑惑,一个_reg能否在同个方法内用两次?我记得JAVA里的正则用过之后要reset的,js里没找到这个方法.

解决方案 »

  1.   

    var _reg = /^\s*\S/;
      

  2.   

    <script>
    function check(str){
    var re = /^\s*[^\s]+\s*$/g;
    return re.test(str);
    }alert(check(" "));
    alert(check(" a"));
    </script>
      

  3.   


    为什么我的表达式行不通呢?这个test方法到底是什么运算的?按你的表达式应该是符合开头有任意空格+任意字符的字符串.(符合要求)而我的是符合字符串(我已经trim掉空格了)长度大于1的,一样的效果啊,为什么不能验证HIML代码呢?
      

  4.   


    test方法有必要加g吗?g不是循环查找时才有用吗?
      

  5.   


    var str = /^\s*\S/;
    str.test("要测的字符串");
      

  6.   


    我的需求中使用一个正则验证两个不同的字符串,所以g是绝对不能加的,加g会依次验证,结果记录进正则的lastindex的相当于两个字符串加起来验证了,不符合需求.
      

  7.   

    function confirmSubmit(){
        var _reg = /^\s*\S{1,}\s*$/;
        if (window.confirm('您确认要提交编辑吗?')) {
            var _check = true;
            if (!(_reg.test($.trim($('#name').val())))) {
                $('#checkName').html("*长度必须在大于1");
                _check = false;
            }else{
                $('#checkName').html("√");
            }
            reg.lastIndex=0;
            if (!(_reg.test($.trim($('#detail').val())))) {
                $('#checkDetail').html("*长度必须在大于1");
                _check = false;
            }else{
                $('#checkDetail').html("√");
            }
            return _check;
        }
        return false;
    }
      

  8.   


    同意9楼
    LZ的表达式把开头和结尾都包进去了,只能匹配连续的非空字符串,HTML代码中间免不了有空格的2楼伴水哥的代码/^\s*\S/
    匹配以n(n>=0)个空格开头且包含非空字符的字符串
    重点是没有封掉结尾,只要验证了有非空字符就通过了