js 正则实现 字符串 trim

今天看了园友continue;的这篇《C# TrimStart,TrimEnd,Trim在javascript上的实现》文章,正好前两天也用着了这个功能,用正则写过一个,下午也闲着没事,发个正则版的,菜鸟交流下哈。。 代码仿着这位老兄的写了

 

String.prototype.lTrim = function(s) {
    s = (s ? s : "\\s");                            //没有传入参数的,默认去空格
    s = ("(" + s + ")");
    var reg_lTrim = new RegExp("^" + s + "*", "g");     //拼正则
    return this.replace(reg_lTrim, "");
};

String.prototype.rTrim = function(s) {
    s = (s ? s : "\\s");
    s = ("(" + s + ")");
    var reg_rTrim = new RegExp(s + "*$", "g");
    return this.replace(reg_rTrim, "");
};

String.prototype.trim = function(s) {
    s = (s ? s : "\\s");
    s = ("(" + s + ")");
    var reg_trim = new RegExp("(^" + s + "*)|(" + s + "*$)", "g");
    return this.replace(reg_trim, "");
};

 

 

下面是测试代码

 

    <script src="Scripts/trim.js" type="text/javascript"></script>
    <script type="text/javascript">
        var str1 = "  aaaaa   ", str2 = "aaasdfdsfaaaa", str3 = "asasddddasas";

        document.write("<p>-----空参数测试,多个空格只能在html里显示一个-------</p>");
        document.write(str1 + ".lTrim()=" + "\"" + str1.lTrim() + "\"<br/>");
        document.write(str1 + ".rTrim()=" + "\"" + str1.rTrim() + "\"<br/>");
        document.write(str1 + ".trim()=" + "\"" + str1.trim() + "\"<br/>");
        document.write("<p>-----单字符的测试-------</p>");
        document.write(str2 + ".lTrim('a')=" + "\"" + str2.lTrim("a") + "\"<br/>");
        document.write(str2 + ".rTrim('a')=" + "\"" + str2.rTrim("a") + "\"<br/>");
        document.write(str2 + ".trim('a')=" + "\"" + str2.trim("a") + "\"<br/>");
        document.write("<p>-----多字符的测试-------</p>");
        document.write(str3 + ".lTrim('as')=" + "\"" + str3.lTrim("as") + "\"<br/>");
        document.write(str3 + ".rTrim('as')=" + "\"" + str3.rTrim("as") + "\"<br/>");
        document.write(str3 + ".trim('as')=" + "\"" + str3.trim("as") + "\"<br/>");
    </script>
posted @ 2011-01-15 18:59  Clyde Loh  阅读(2173)  评论(2编辑  收藏  举报