我如何从字符串的开始和结束删除所有空白?
当前回答
从angular js项目中修剪代码
var trim = (function() {
// if a reference is a `String`.
function isString(value){
return typeof value == 'string';
}
// native trim is way faster: http://jsperf.com/angular-trim-test
// but IE doesn't have it... :-(
// TODO: we should move this into IE/ES5 polyfill
if (!String.prototype.trim) {
return function(value) {
return isString(value) ?
value.replace(/^\s*/, '').replace(/\s*$/, '') : value;
};
}
return function(value) {
return isString(value) ? value.trim() : value;
};
})();
并将其命名为trim(" hello ")
其他回答
如果使用jQuery,请使用jQuery.trim()函数。例如:
if( jQuery.trim(StringVariable) == '')
我知道这个问题三年前就有人问过了。现在,String.trim()是在JavaScript中原生添加的。举个例子,你可以像下面这样直接修剪,
document.getElementById("id").value.trim();
我有一个库,使用修剪。所以通过使用下面的代码来解决它。
String.prototype.trim = String.prototype.trim || function(){ return jQuery.trim(this); };
从angular js项目中修剪代码
var trim = (function() {
// if a reference is a `String`.
function isString(value){
return typeof value == 'string';
}
// native trim is way faster: http://jsperf.com/angular-trim-test
// but IE doesn't have it... :-(
// TODO: we should move this into IE/ES5 polyfill
if (!String.prototype.trim) {
return function(value) {
return isString(value) ?
value.replace(/^\s*/, '').replace(/\s*$/, '') : value;
};
}
return function(value) {
return isString(value) ? value.trim() : value;
};
})();
并将其命名为trim(" hello ")
我的使用一个regex来寻找需要修剪的情况,并使用regex的结果来确定所需的子字符串边界:
var illmatch= /^(\s*)(?:.*?)(\s*)$/
function strip(me){
var match= illmatch.exec(me)
if(match && (match[1].length || match[2].length)){
me= me.substring(match[1].length, p.length-match[2].length)
}
return me
}
其中的一个设计决策是使用子字符串执行最终捕获。/ \ ?://(捕获中间项)并且替换片段变成:
if(match && (match[1].length || match[3].length)){
me= match[2]
}
我在这些建议中做了两个性能赌注:
子字符串实现复制原始字符串的数据吗?如果是这样,在第一种情况下,当一个字符串需要修整时,会有两次遍历,第一次在正则表达式中(希望是部分的),第二次在子字符串提取中。希望子字符串实现只引用原始字符串,这样像substring这样的操作几乎是免费的。交叉手指 正则表达式impl中的捕获有多好?中间项,也就是输出值,可能会很长。我还没有准备好银行所有的regex impls的捕获不会阻止几百KB的输入捕获,但我也没有测试(太多的运行时,对不起!)第二个ALWAYS运行捕获;如果你的引擎可以做到这一点而不受影响,也许可以使用上面的一些技巧,那就一定要使用它!
推荐文章
- 如何使用Jest测试对象键和值是否相等?
- 将长模板文字行换行为多行,而无需在字符串中创建新行
- 如何在JavaScript中映射/减少/过滤一个集?
- Bower: ENOGIT Git未安装或不在PATH中
- 是否有可能更新一个本地化的故事板的字符串?
- 为什么字符串类型的默认值是null而不是空字符串?
- 添加javascript选项选择
- 在Node.js中克隆对象
- 在Python中包装长行
- 为什么在JavaScript的Date构造函数中month参数的范围从0到11 ?
- 使用JavaScript更改URL参数并指定默认值
- 在window.setTimeout()发生之前取消/终止
- 如何删除未定义和空值从一个对象使用lodash?
- string. isnullorempty (string) vs. string. isnullowhitespace (string)
- 检测当用户滚动到底部的div与jQuery