需求是字符串的头或尾不能为双引号,但中间可以。
下面是我写的,但有问题,比如a,aa,不能匹配。
function test1()
{
var txt = document.form1.elements["custom"].value;
reg =/^[^"][0-9a-zA-Z~!@#$^&*()_+={}\[\]|'",.:?\/]*[^"]$/;
if(! reg.test(txt))
{
alert("contains invalid characters.");
}
else
{
alert("ok");
}
}

解决方案 »

  1.   

    L@_@Kfunction test1(txt)
    {
        var reg = /^[^"].*[^"]$/;
        if(!reg.test(txt))
        {
            alert("contains invalid characters.");
        }
        else
        {
            alert("ok");
        }
    }
    test1("a,a\"a,"); // ok
    test1("\"a,a\"a,"); // contains invalid characters.
      

  2.   


      var txt = document.form1.elements["custom"].value;
        reg =/^\".*|\"$/;
        if(reg.test(txt))
        {
            alert("contains invalid characters.");
        }
        else
        {
            alert("ok");
        }
      

  3.   

        var txt = document.form1.elements["custom"].value;    reg =/^\"|\"$/;
        if(reg.test(txt))
        {
            alert("contains invalid characters.");
        }
        else
        {
            alert("ok");
        }
      

  4.   

    var reg = /^(?!")(?![\d\D]*"$)/;
    if (!reg.test(txt)) {
        // invalid
    } else {
        // ok
    }
      

  5.   

    var reg = /^(?!"|[\d\D]*"$)[^;]*$/;