这个问题已经有一个答案在这里:

是什么一种清洁和高效的JavaScript执行条开头和结尾的空间,从一串?

例如:

" dog"

"dog "

" dog "

" dog "

都变成了

"dog"

有帮助吗?

解决方案

使用这样的:

if(typeof(String.prototype.trim) === "undefined")
{
    String.prototype.trim = function() 
    {
        return String(this).replace(/^\s+|\s+$/g, '');
    };
}

修剪功能,现在将提供的作为第一流的功能上你的琴弦。例如:

" dog".trim() === "dog" //true

编辑:把J-P的建议结合regex模式为一体。还增加了全球修改每克里斯托弗的建议。

把马修Crumley的想法探查的上微调功能之前的重建。这样做是在情况下的版本JavaScript用客户是更新近的因此具有其自己本地修剪的功能。

其他提示

技术用户,怎么样 $.trim(s)

秋葵浓汤已经注意到这一意见,但这值得重复作为一个答案:的 trim() 方法是加入JavaScript1.8.1和支持通过所有现代浏览器(Firefox3.5+,即9、铬10,Safari5.x),但即8和年长不支持它。用法很简单:

 "  foo\n\t  ".trim() => "foo"

参见:

这里的功能使用。

function trim(s){ 
  return ( s || '' ).replace( /^\s+|\s+$/g, '' ); 
}

一个更好的提供填充代码从 MDN 支持删除 BOMNBSP:

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
  };
}

铭记,修改的内置原型带有性能的影响(由于JS引擎援助在一定数量的运行时优化),并在性能至关重要的情况下,你可能需要考虑的替代定义 myTrimFunction(string) 代替。这就是说,如果针对一个旧的环境没有司机 .trim() 支持,你很可能有更重要性的问题来处理。

史蒂芬*Levithan 一旦写的关于如何实现 快JavaScript饰.这绝对值得一看。

如果你已经在使用jQuery,然后你可能想看一看 jQuery.trim() 这已经是提供有文化的地方.

如果,而不是编写新的码要修剪一串,你看着现代码电话"条()",并想知道为什么它不工作,你可能想看看是否它试图包括一些东西喜欢的prototypejs框架,并确保它实际上得到加载。
这一框架增加了一个条功能的所有串的对象,但是,如果例如你升级它和您的网页仍然参照旧。js文件,它会当然不起作用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top