javascript 字符串反转 strip_tags 字符串常用的自定义函数,加载css etc.

字符串反转

String.prototype.reverse = function() {
  var a = this.split('');
  for (var i = 0, j = a.length-1; i < j; i++, j--) {
    var tmp = a[i];
    a[i] = a[j];
    a[j] = tmp;
  }
  return a.join('');
}

// test
var s = "Hello world!";
console.log(s.reverse()); 
 // !dlrow olleH

 

// 去字符串#后面的部分  http://localhost:8090/admin/activity.html#list => list
String.prototype.hash = function() {
    var index = this.lastIndexOf("#");
    return index < 0 ? "" : this.substring(index);
};

// 字符串宽度 汉字算1个 英文字母数字算半个
String.prototype.width = function() {
    var c = 0, inc;
    for (var i = 0, n = this.length; i < n; i++) {
        inc = this.charCodeAt(i) < 256 ? 0.5 : 1;
        c += inc;
    }
    return c;
}

String.prototype.mb_substr = function(w) {
    var c = 0, inc, i;
    for (i = 0, n = this.length; i < n && c <= w; i++) {
        inc = this.charCodeAt(i) < 256 ? 0.5 : 1;
        c += inc;
    }
    return this.substring(0, i);
}

// 返回整数数组的最大值
Array.prototype.max = function() {
    var max = this[0];
    for (var i = 1, n = this.length; i < n; i++) {
        if (this[i] > max) {
            max = this[i];
        }
    }
    return max;
};

// 去掉html中的标签  <div><p>...
function strip_tags(html) {
    var div = document.createElement("div");
    div.innerHTML = html;
    return (div.textContent || div.innerText || "");
}

// 去的当前年月 201806
function get_yyyymm() {
    var date = new Date();
    var month = date.getMonth()+1;
    return (date.getYear() + 1900) + ""+ (month<10 ? "0"+month : month);
}

// 引入css(jquery-ui.css), 到head >link:first-child前
// load css before all <link> tags
function css(href) {
    var link = document.createElement("link");
    link.type = "text/css";
    link.rel = "stylesheet";
    link.href = href;
    var dom = document.head.querySelector("link");
    document.head.insertBefore(link, dom);
}

  

* 如果第二个参数 bUnicode255For1 === true,则所有字符长度为 1
否则如果字符 Unicode 编码 > 255 则长度为 2

input: 'hello world, 牛客', false

output: 17

function strLength(s, bUnicode255For1) {
    var len = 0;
    for (var i = 0, n = s.length; i < n; i++) {
        if (s.charCodeAt(i) > 255) {
            len += bUnicode255For1 ? 1:2;
        } else {
            len += 1;
        }
    }
    return len;
}

  

posted @ 2018-06-11 17:52  zhanghui_ming  阅读(276)  评论(0编辑  收藏  举报