0

こんにちは、JavaScript で両端から文字列をトリミングしようとしていますが、正しく機能しません。スクリプトが機能しないか、テキスト ボックスからフォーカスが失われることがあります。私は以下のようにjavascriptを書き、検証関数で呼び出しています

function trim(s) 
        {
            if (typeof s!= "string") {
                return s;
             }
             var retValue = s;
             var ch = retValue.s(0, 1);
             while (ch == " ")
             {      retValue = retValue.substring(1, retValue.length);
                    ch = retValue.substring(0, 1);
             }
             ch = retValue.substring(retValue.length-1, retValue.length);
             while (ch == " ")
             {
                 retValue = retValue.substring(0, retValue.length-1);
                 ch = retValue.substring(retValue.length-1, retValue.length);
            }
            while (retValue.indexOf("  ") != -1)
            {
                retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length);
            }
                return retValue; 
        } 

       function validate() {
        // alert("Please! Enter  Farm Name");
        if (!trim(document.getElementById("<%=txtFarm_Name.ClientID%>").value)) {
            alert("Please! Enter  Farm Name");
            document.getElementById("<%=txtFarm_Name.ClientID%>").focus();
            return false;
        }

}

4

2 に答える 2

0

次のようなことができます

if(!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^\s+|\s+$/g,'');
  };
}

上記のコードが実行されると、次のように使用できます

var str = " Hello world  ";
console.log(str.trim());

または、プロジェクトでjqueryが使用されている場合、次のようなものも機能します

var str = " Hello world  ";
$.trim(str);
于 2013-07-23T04:24:48.980 に答える