如 
   var str1 = "aa;bb;cc;";
   var str2 = "aa;bb;cc";
   var str3 = ";aa;bb;cc";
   var str4 = ";aa;bb;cc;"
判断前后有没 ";",如果没有就加,有就不加。谢谢各位

解决方案 »

  1.   

    如果字符串是那种格式的话:
    function getS(str)
    {
        _arr=str.split(";");
        if(_arr[0].length>0){str=';'+str;}
        if(_arr[_arr.length-1].length>0){str=str+';'}
        return str;
    }
      

  2.   

    如果是任意字符:
    function getS(str)
    {
        if(str.length==0){return str}
        if(str.substring(0,1)!=';'){str=';'+str}
        if(str.substring(str.length-1,str.length)!=';'){str=str+';'}
        return str;
    }
      

  3.   

    可以用正则判断
    <!doctype html>
    <html>
    <head>
    <title>test</title>
    <script type="text/javascript">
    function ck() {
    var reg1 = /^\;.*/;
    var reg2 = /.*\;$/;
    var val = document.getElementById("a").value;
    if (!reg1.test(val)) {
    val = ";" + val;
    }
    if (!reg2.test(val)) {
    val = val + ";";
    }
    document.getElementById("a").value = val;
    }
    </script>
    </head>
    <body>
    <input id="a" type="text" />
    <input type="button" value="submit" onclick="ck()" />
    </body></html>
      

  4.   


    var s = ["aa;bb;cc;","aa;bb;cc",";aa;bb;cc",";aa;bb;cc;"];
    for(var i=s.length-1;i>=0;i--)s[i]=s[i].replace(/(^[^;])/,';$1').replace(/([^;]$)/,'$1;');//检测
    for(var i=0,il=s.length;i<il;i++)alert(s[i]);
      

  5.   


    这位朋友的方法应该更优,借用,修正一下,顺便做个标记
    function getS(str)
    {
        return str.replace(/(^[^;])/,';$1').replace(/([^;]$)/,'$1;');
    }