提问人:user21239422 提问时间:2/18/2023 更新时间:2/18/2023 访问量:55
如何检查句子中的每个单词是否以大写字母开头并以“, ”结尾?[已结束]
How can I check if every word in a sentence starts with a capital letter and ends with ", "? [closed]
问:
我有一个输入类型文本,我想允许用户输入职业名称。我想加入这个计划“Profession1, Profession2, Profession3”。也就是说,以大写字母开头,如果有其他值,则该单词后应跟一个“,”和一个空格。我尝试过 html 模式和 php 函数,但不幸的是它不能如我所愿。重要的是,用户只能输入一个值,那么它应该看起来像“Profession1”,单词后面没有空格和“,”符号。最后一个条件也适用于上一个示例。
提前致谢
答:
0赞
DCoxshall
2/18/2023
#1
为简单起见,以下解决方案不使用正则表达式。
function match(str) {
let list = str.split(' ');
for (let i = 0; i < list.length; i++) {
if (list[i].charCodeAt(0) > 90 || list[i].charCodeAt(0) < 65) {
return false;
}
}
for (let i = 0; i < list.length - 1; i++) {
if (!(list[i][list[i].length - 1] == ",")) {
return false;
}
}
return list;
}
当传递包含以逗号分隔的单词的字符串时,每个单词都以大写字母开头,它将返回列表。否则,它将返回 false。
编辑:在评论中澄清了需求后,以下是更新的功能。
function match(str) {
let list = str.split(',');
// Checks for capital letters at the start of each profession
for (let i = 0; i < list.length; i++) {
if (list[i].trim().charCodeAt(0) > 90 || list[i].trim().charCodeAt(0) < 65) {
return false;
}
}
// Checks for spaces after every comma
for (let i = 1; i < list.length; i++) {
if (!(list[i][0] == " ")) {
return false;
}
}
// Trim whitespace on each profession
l = list.map((profession) => {
return profession.trim();
})
return l;
}
评论
0赞
user21239422
2/18/2023
它如我所愿地完美运行,但我忘了补充一点,有些职业名称可以是多成分的,比如(“Profesion profesion”或“Profesion-profesion”)
0赞
DCoxshall
2/18/2023
好的,我已经编辑了我的答案来解决这个问题。如果它有效,你能把它标记为正确吗?
1赞
user21239422
2/19/2023
好的,一切正常。我真的很感谢你的帮助
0赞
DCoxshall
2/19/2023
不用担心,酋长。
评论