我正在尝试从字符串创建一个单词数组,但也包括包含撇号的单词。
这就是我现在所拥有的:
var example_str = "This is an example string that I've created."
function createArr( str ){
return str.split(/\W+/);
}
console.log( createArr( example_str ) );
它最终会在撇号之后拆分字母。
["This", "is", "an", "example", "string", "that", "I", "ve", "created", ""]
我想回复一下:
["This","is","an","example","string","that","I've","created"]
这是一个jsfiddle: http://jsfiddle.net/9uatwLkg/
答案 0 :(得分:2)
\W
匹配不是\w
的字符。您还可以使用[^\w]
将其表示为否定字符类;这使得添加撇号很容易。
return str.split(/[^\w']+/);
由于您不想要期间的最后一个空字符串,因此使用正匹配可能更合适:
return str.match(/[\w']+/g);
甚至尝试排除常见的标点符号,因为有很多字符可以形成Unicode中的部分单词(如“café”中):
return str.match(/[^\s.,;!?/]+/g);
但在这种情况下(因为还有很多标点符号),您最终可能会抓取XRegExp并匹配\p{L}
for all letter characters。
答案 1 :(得分:0)
var example_str = "This is an example string that I've created."
function createArr( str ){
return str.split(/[^\w']+/);
}
console.log( createArr( example_str ) );