如何从字符串中剥离前导和尾随空格?
例如," dog "应该变成"dog"。
" dog "
"dog"
用这个:
if(typeof(String.prototype.trim) === "undefined") { String.prototype.trim = function() { return String(this).replace(/^\s+|\s+$/g, ''); }; }
trim函数现在可以作为字符串的一级函数使用。例如:
" dog".trim() === "dog" //true
编辑:采纳J-P的建议,将正则表达式模式合并为一个。还根据Christoph的建议添加了全局修饰语。
采用了Matthew Crumley关于在重新创建trim函数之前嗅探它的想法。这是在客户端上使用的JavaScript版本较新的情况下完成的,因此有自己的本机修剪函数。
这是我使用的函数。
function trim(s){ return ( s || '' ).replace( /^\s+|\s+$/g, '' ); }
史蒂文Levithan曾经写过如何实现更快的JavaScript Trim。绝对值得一看。
对于jquery用户,$.trim(s)如何
$.trim(s)
Gumbo已经在评论中提到了这一点,但这值得重复作为回答:trim()方法是在JavaScript 1.8.1中添加的,并且所有现代浏览器(Firefox 3.5+, IE 9, Chrome 10, Safari 5.x)都支持,尽管IE 8及更老版本不支持它。用法很简单:
trim()
" foo\n\t ".trim() => "foo"
参见:
如果你已经在使用jQuery,那么你可能想看看jQuery.trim(),它已经被jQuery提供了。
jQuery.trim()
来自中数的更好的填充,支持删除物料清单和盼:
if (!String.prototype.trim) { String.prototype.trim = function () { return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); }; }
请记住,修改内置原型会带来性能损失(由于JS引擎放弃了许多运行时优化),在性能关键的情况下,您可能需要考虑定义myTrimFunction(string)的替代方案。也就是说,如果你的目标是一个没有原生.trim()支持的旧环境,你可能会有更重要的性能问题要处理。
myTrimFunction(string)
.trim()