我有一个可以有单词和空格的字符串 我想返回字符串中的第一个单词。
我的方法是:
.split(' ')
以删除空格。 .filter(function(el){ return (el != '') }
[0]
有更优化的方法吗?也许是正则表达式?
我的代码:
var string = " foo bar ";
function getFirst(str) {
var separatedString = str.split(' ');
separatedString = separatedString.filter(function (el) {
return (el != '')
})
return separatedString[0];
}
答案 0 :(得分:2)
可能最接近你的代码的等价物就是这一行:
var word1 = s.replace(/\s*(\S+).*/, '$1');
由于你是按空间分割所以这段代码只是从给定的输入中获取第一个非空格子字符串。
答案 1 :(得分:1)
你可以做到
var firstWord = string.match(/\S+/)[0];
答案 2 :(得分:1)
你可以使用拆分多个空格并在过滤器中使用trim
和string.length
:
function getFirst(str) {
var separatedString = str.split(/\s+/).filter( function (el) {
return el.length;
});
return separatedString[0];
}
getFirst(' foo-bar foo bar bar@foo '); //=> 'foo-bar'