代码之家  ›  专栏  ›  技术社区  ›  uzay95

Javascript按C中的原样修剪#

  •  1
  • uzay95  · 技术社区  · 14 年前

    JQuery.trim() 功能,但它正在修剪空白区域。

    但我想像在C#里那样做。

    string props = ",width=400,height=400,status=0,location=0,";
    props.Trim(',');
    // result will be: "width=400,height=400,status=0,location=0"
    

    我该怎么做?实际上,我想使用它作为常规输入参数,而不仅仅是“,”。。

    2 回复  |  直到 14 年前
        1
  •  2
  •   thejh    14 年前

    尝试regexp:

    var props=",width=400,height=400,status=0,location=0,";
    props=props.replace(/^[,]*(.*?)[,]*$/, "$1");
    

    例如,如果还希望删除开头或结尾的分号,请使用以下命令:

    props=props.replace(/^[,;]*(.*?)[,;]*$/, "$1");
    

    如果您也要删除空格,但只在结尾处:

    props=props.replace(/^[,;]*(.*?)[,; ]*$/, "$1");
    
        2
  •  1
  •   Community omersem    7 年前

    我发现 a link 用函数做这个我发现 another link 如何将此函数添加到字符串类型。我写了下面的代码 test link :

    String.prototype.TrimLeft = function (chars) {
        //debugger;
        var re = chars ? new RegExp("^[" + chars + "]+/", "g")
                       : new RegExp(/^\s+/);
        return this.replace(re, "");
    }
    String.prototype.TrimRight = function (chars) {
        var re = chars ? new RegExp("[" + chars + "]+$/", "g")
                       : new RegExp(/\s+$/);
        return this.replace(re, "");
    }
    String.prototype.Trim = function (chars) {
        return this.TrimLeft(chars).TrimRight(chars);
    }
    

    ^[" + chars + "]+ 正在查找字符串开头的字符。 它在这条线上取代了: this.replace(re, "");

    有了这个: [" + chars + "]+$ ,它正在搜索字符串末尾的字符 g (全局)并用相同的方法替换。

    var c=",width=400,height=400,status=0,";
    c.Trim(",");
    // result: width=400,height=400,status=0