将数字拆分为数组忽略撇号

时间:2015-01-08 03:53:39

标签: javascript

我正在尝试从字符串创建一个单词数组,但也包括包含撇号的单词。

这就是我现在所拥有的:

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/

2 个答案:

答案 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 ) );

Demo