网络上的答案与其他编程语言有关。我做了很多搜索,但似乎都没有。我正在寻找每个头衔。
var str = ["bob, b", "the, d", "builder, e", "can", "he", "fix", "it" ]
str.match(/^(\w+)/) // Uncaught TypeError: str.match is not a function
我试着看this但是......我还在学习,而且我没有正确使用它。
如何仅返回bob
而非bob, b
?
答案 0 :(得分:3)
var str = ["bob, b", "the, d", "builder, e", "can", "he", "fix", "it" ];
for(var i=0; i < str.length; ++i){
console.log(str[i].match('[a-zA-Z]+'));
}
答案 1 :(得分:0)
您在字符串上运行match()
,但在字符串数组上运行str
。 str[0]
是一个数组(因此不知道其中包含了什么),但String
是该数组的第一个元素,是match()
并且具有str[0]
方法。在strArray
上运行正则表达式,你应该回到“bob”。
最好重命名数组变量以反映这一点(例如{{1}})。
答案 2 :(得分:0)
关于你的正则表达式:
首先,您必须使用 ^ 来查看字符串的开头。
然后你想匹配字母(或数字?),只要没有任何其他字符:
[a-zA-Z0-9]
你的正则表达式应该是
^[a-zA-Z0-9]+
正如@ Compynerd255所说:你需要在你的字符串而不是你的数组上应用你的match()函数。
答案 3 :(得分:0)
试试这个......
function getFirstWord(str) {
var matched = str.match(/^\w+/);
if(matched) {
return matched[0];
}
console.error("No Word found");
return -1;
};
var str = ["bob, b", "the, d", "builder, e", "can", "he", "fix", "it"];
for(var i = 0, strLen = str.length; i < strLen; i += 1) {
var item = str[i];
var firstWord = getFirstWord(item);
console.log(firstWord);
}
答案 4 :(得分:-1)
首先,您需要从array
获取第0个元素,然后使用昏迷split
,以便在获得array
后返回array
你可以从中提取第一个元素。
在坚果壳中,以下作品
var str = ["bob, b", "the, d", "builder, e", "can", "he", "fix", "it" ]
console.log(str[0].split(',')[0]);
答案 5 :(得分:-1)