我正在尝试制作一个将所有大写字母转换为小写的机器人。我想以有效的方式验证我是否正确行事。
var temp = /^[a-z][^a-z]*$/;
fb.onMessage(function (msg) {
var parts = msg['m'].split(" ");
var cleaned = [];
for (var i = 0; i < parts.length; i++) {
var word = parts[i];
if (temp.test(word)) {
cleaned.push(word);
} else {
cleaned.push(word.toLowerCase());
}
}
msg['m'] = cleaned.join(' ');
return msg;
});
答案 0 :(得分:1)
无需拆分字符串,只需在完整字符串上使用.toLowerCase()
即可。 toLowerCase
并不关心已经是小写的部分,也不关心不是字母字符的部分。
答案 1 :(得分:0)
邮件是否非常冗长?
如果没有更多,那么在没有先检查模式的情况下简单地小写所有单词可能同样有效。此外,没有理由在事实之后小写单词。
如果我正在阅读你在那里写的内容,那么你正在分裂,检查它是否已经是小写,如果没有,则将其缩小,然后将所有单词重新添加到一起。只需一次完成就可以更加简单快捷。
fb.onMessage(function (msg) {
msg.m = msg.m.toLowerCase().replace(/\s+/g, '');
return msg;
});
我扔了一个replace(/\s+/g, '')
,它会将任何多个空格部分折叠到一个空格。不确定这是否是您尝试上述尝试的一部分。如果您不关心这一点,请删除事件更高效命令的替换。