去除字符串首尾的空格
使用正则去除字符串首尾的空格。
分享三个去除字符串首尾空格的方法。
第一种,只调用一次replace方法
function trim(str){ return (str || "").replace(/^\s+|\s+$/g,""); } assert(trim(" #id div.class ") == "#id div.class", "Extra whitespace trimmed from a selector string");
第二种,先替换开头的空格,再替换结尾的空格
function trim(str){ return str.replace(/^\s\s*/,'').replace(/\s\s*$/, ''); }
第三种,使用slice剔除尾部的空格
function trim(str){ var str = str.replace(/^\s\s*/, ''), ws = /\s/, i = str.length; console.log(ws.test(str.charAt(--i))); while (ws.test(str.charAt(--i))); return str.slice(0, i + 1); }
在大多数JavaScript库中使用了第一种解决方案。但是在处理文档的时候,第三种解决方案的性能更好。在匹配短字符串的情况下,方法1和方法2效率更高。
方法一中的 assert函数是一个简单的单元测试,代码如下
function assert(value, desc){ var li = document.createElement("li"); li.className = value ? "pass" : "fail"; li.appendChild(document.createTextNode(desc)); //console.log(document.getElementById("results")) document.getElementById("results").appendChild(li); }