现在,我让用户输入一个化学式,例如Cu(NO3)2,然后将元素和数字分成一个数组。该代码适用于所有公式,但带括号的公式除外。 (实际上来自此处的用户提交的线程。)
var userArray=userIn.replace(/\d+/g, '~$&').split(/(?=[A-Z])|~/);
我使用replace然后split的原因是为了确保如果有人输入H12,它将以H,12 ...而不是H,1,2出现。
我正在获取Cu(,N,O,3),2 ...实际上我想要... Cu,(,N,O,3,),2
最佳答案
关于使用match代替g标志呢:
var userArray=userIn.match(/(?:[A-Z][a-z]*|\d+|[()])/g);
关于javascript - 正则表达式按括号,首个大写字母和数字进行拆分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17225537/