我试过
var str = "thisIsATest";
var newStr = str.split(/(?=[A-Z])/);
console.log(newStr);
根据我的意愿得出结果:
['this', 'Is', 'A', 'Test']
但是
的功能?= is
x(?=y)
仅当x后跟y时匹配x。
所以不应该在每个单词的最后一个字母处分开。
['thi', 'I', '', 'Test']
这样的事情......或不是。
因为如果我做split(' ');
它会在每个"空间分开#34;
答案 0 :(得分:0)
当你试图分裂时,不要想象它会看到每个角色。相反,试着想象它有点像游标,来自:
|thisIsATest
为:
thisIsATest|
它像光标一样工作的原因是因为你告诉它匹配每个空字符串""
,所以很明显,你只需要考虑字符之间的东西。
每次移动时,?=
都会告诉它前方的角色,而不是向前移动。如果前面的字符与[A-Z]
匹配。如果匹配,则拆分字符串!
下面:
this|IsATest
光标后的字符为I
,因此匹配并分割。
它也分成以下几个位置:
thisIs|ATest
thisIsA|Test