您好,欢迎访问一九零五行业门户网

js中关于string的一些常用的方法详解

最近总结了一些关于string中的常用方法,
其中大部分的方法来自于《javascript框架设计》这本书,
如果有更好的方法,或者有关于string的别的常用的方法,希望大家不吝赐教。
第一部分:
字符串中查找,
包括一个字符串是否在另一个字符串内部,是否在开始之处,是否在结尾之处。
/** * 判断一个字符串是否包含另一个字符串 * @param target * @param it * @returns {boolean} */ function contains(target,it) { return target.indexof(it) !== -1; } /** * 判定目标字符串是否位于原字符串的开始之处 * @param target * @param str * @param ignorecase 是否忽略大小写 * @returns {boolean} */ function startwith(target,str,ignorecase) { const startstr = target.substr(0,str.length); return ignorecase ? startstr.tolocalelowercase() === str.tolocalelowercase() : startstr === str; } /** * 判定目标字符串是否位于原字符串的结束之处 * @param target * @param str * @param ignorecase 是否忽略大小写 * @returns {boolean} */ function endwith(target,str,ignorecase) { const startstr = target.substr(target.length - str.length); return ignorecase ? startstr.tolocalelowercase() === str.tolocalelowercase() : startstr === str; }
第二部分:
字符串重复,
将一个字符串重复n次后返回
/** * 重复字符串 * @param target 目标字符串 * @param n 次数 * @returns {string} */ function repeat(target,n) { return (new array(n + 1)).join(target); } function repeat2(target,n) { return array.prototype.join.call({ length: n + 1 },target); } function repeat3(target,n) { let s = target,total = []; while (n > 0) { if (n % 2 == 1) { // 如果是奇数 total[total.length] = s; } if (n === 1) { break; } s += s; // 将n除以2取其商,或说开二次方 n = n >> 1; } return total.join(''); } function repeat4(target,n) { if (n === 1) { return target; } let s = this.repeat4(target,math.floor(n / 2)); s += s; if (n % 2) { s += target; } return s; } function repeat5(target,n) { let s = target,c = s.length * n; do { s += s; } while (n = n >> 1); // 这样省去了判断奇偶数 s = s.substring(0,c); return s; } /** * 各个浏览器得分最好的 * @param target * @param n * @returns {string} */ function repeat6(target,n) { let s = target,total = ''; while ( n > 0) { if (n % 2 === 1) { total += s; } if (n === 1) { break; } s += s; n = n >> 1; } return total; }
第三部分:
字符串长度,
获取一个字符串的字节长度,并支持定制汉字的存储字节数
/** * 取得一个字符串所有字节的长度 * @param target * @returns {number} */ function bytelen(target) { let bytelength = target.length,i = 0; for(;i < target.length; i++) { if (target.charcodeat(i) > 255) { bytelength++; } } return bytelength; } /** * 使用正则,并支持定制汉字的存储字节数 * @param target * @param fix * @returns {number} */ function bytelen2(target,fix) { fix = fix ? fix : 2; const str = new array(fix + 1).join('-'); return target.replace(/[^\x00-\xff]/g,str).length; }
第四部分:
字符串替换,
包括字符串截取替换,移除html中的一些标签,替换字符串中对html不安全的标签
/** * 对字符串进行截断处理,当超过限定长度,默认添加三个点号或其他什么的 * @param target * @param length * @param truncation * @returns {string} */ function truncate(target,length,truncation) { length = length || 30; truncation = truncation === void(0) ? '...' : truncation; return target.length > length ? target.slice(0,length - truncation.length) + truncation : string(target); } /** * 移除字符串中的html标签 * @param target * @returns {string} */ function striptags(target) { return string(target || '').replace(/<[^>]+>/g,''); } /** * 移除字符串中所有的script标签 * @param target * @returns {string} */ function stripscripts(target) { return string(target || '').replace(/<script[^>]*>([\s\s*?])<\/script>/img,''); } /** * 将字符串经过html转义得到适合在页面显示的内容 * @param target * @returns {string|xml} */ function escapehtml(target) { return target.replace(/&/g,'&amp;') .replace(/</g,'&lt;') .replace(/>/g,'&gt;') .replace(/' '/g,'&quot;') .replace(/'/g,'&#39;'); }
第五部分:
字符串填充,
将特定的字符串填充到另一个字符串中,使得目标字符串得到相应的长度,包括向前填充和向后填充。
/** * 获取n位数,不够的前面补0 * @param target * @param n 位数 * @returns {string} */ function pad(target,n) { const zero = new array(n).join('0'); const str = zero + target; return str.substr(-n); } function pad2(target,n) { let len = target.tostring().length; while (len < n) { target = '0' + target; len++; } return target; } /** * 支持多种填充,并可以选择填充的位置(前面或后面) * @param target * @param n * @param filling * @param right * @param radix * @returns {string} */ function pad8(target,n,filling,right,radix) { var num = target.tostring(radix || 10); filling = filling || '0'; while (num.length < n) { if (!right) { num = filling + num; } else { num += filling; } } return num; }
第六部分:
清除字符串前后的空格,
/** * 去除字符串前后的空格 * @param str * @returns {string|xml} */ function trim(str) { return str.replace(/^\s\s*/,'').replace(/\s\s*$/,''); } function trim2(str) { return str.replace(/^\s+/,'').replace(/\s+$/,''); } function trim3(str) { return str.substring(math.max(str.search(/\s/),0), str.search(/\s\s*$/) + 1); } function trim4(str) { return str.replace(/^\s+|\s+$/g,''); } function trim5(str) { str = str.match(/\s+(?:\s+\s+)*/); return str ? str[0] : ''; } function trim6(str) { return str.replace(/^\s*(\s*(\s\s+)*)\s*$/,'$1'); } function trim7(str) { return str.replace(/^\s*(\s*(?:\s+\s+)*)\s*$/,'$1'); } function trim8(str) { return str.replace(/^\s*((?:[\s\s]*\s)?)\s*$/,'$1'); }
以上就是js中关于string的一些常用的方法详解的详细内容。
其它类似信息

推荐信息