2

我知道他们已经对这个主题提出了很多问题,但
我已经尝试过一段时间没有回答这个问题:

var string = "ABC hereWeAre Againwith Those words";

['A','B','C','here','We','Are','Againwith','Those','words'];

(当有大写或空格时)。

我试过了:

string.match(/[A-Z]+|[a-z]+|[0-9]+|[\S]+/g);
string.match(/[a-z]+/gi);

但没有任何工作。
谢谢你的帮助。

4

2 回答 2

3

正确的正则表达式是:

"ABC hereWeAre Againwith Those words".match(/[A-Z][a-z]*|[a-z]+/g);
于 2012-12-14T11:40:07.897 回答
1

在这里(有点复杂但仍然有效):

"ABC hereWeAre Againwith Those words".replace(/([A-Z])/g, ' $1').trim().split(/\s+/);
// returns ["A", "B", "C", "here", "We", "Are", "Againwith", "Those", "words"]

想法是找到大写字母,在前面加上空格,然后用空格修剪和分割整个字符串。注意将正则表达式传入.split以消除一个接一个多个空格的问题。

于 2012-12-14T11:33:04.707 回答