我正在使用javascript RegExp检查字符是否为大写字母
function splitWords(text) {
const capReg = /[A-Z]/g;
const alphaNumReg = /[a-z0-9]/g;
for (let i = 0; i <= text.length - 1; i++) {
console.log(
text[i], text[i + 1], text[i + 2],
capReg.test(text[i]), capReg.test(text[i + 1]),
alphaNumReg.test(text[i + 2])
);
}
}
splitWords('ABCOption');
在预期情况下 C,O,p,true,true,true 实际 C,O,p,true,false,true
请帮助我哪里做错了
答案 0 :(得分:1)
这是获取数组并检查每个大写字母的方法:
array = ['A','B','C','D','E']
print len(array)
for i in range(0,len(array)):
sheet2.cell(i+1,1).value = array[i]
print cell
sheet2.cell(i+1,1).value = cell
wb2.save(path2)
答案 1 :(得分:1)
以下代码对我有用,希望对您也有用。您只需要像下面一样更改正则表达式
function splitWords(text) {
const capReg = /^[A-Z]*$/;// /[A-Z]/g just replace your regexp and try ;
const alphaNumReg = /^[a-z0-9]*$/;// /[a-z0-9]/g ;
for (let i = 0; i <= text.length - 1; i++) {
console.log(
text[i], text[i + 1], text[i + 2],
capReg.test(text[i]), capReg.test(text[i + 1]),
alphaNumReg.test(text[i + 2])
);
}
}
答案 2 :(得分:0)
如果要逐个字符地检查,则不需要在正则表达式中使用g
部分;当您不想在第一场比赛时停下时,使用g
。只需将您的正则表达式替换为/[A-Z]/
,它就会按预期运行。
此外,如果要基于大写字母将字符串拆分为单词,则可以直接使用模式进行操作。检查this SO question以查看一些解决方案