我试图解决Javascript中的一个(简单)编程问题,我无法弄清楚如何让它工作。我有一个程序,通过使用提示读取文本字符串开始。在Javascript中识别字符串格式
程序输出或者“有效名”或“无效的名称”,这取决于输入名称是否符合所要求的格式,它是:
“姓,名,中间初始”
这两个名称都不能超过15个字符。
我知道有一个简单的方法来做到这一点,但我似乎无法在任何地方找到它。谢谢你的帮助!
我试图解决Javascript中的一个(简单)编程问题,我无法弄清楚如何让它工作。我有一个程序,通过使用提示读取文本字符串开始。在Javascript中识别字符串格式
程序输出或者“有效名”或“无效的名称”,这取决于输入名称是否符合所要求的格式,它是:
“姓,名,中间初始”
这两个名称都不能超过15个字符。
我知道有一个简单的方法来做到这一点,但我似乎无法在任何地方找到它。谢谢你的帮助!
我不会用\w
,因为它包含的字符,如_
和九数字。考虑以下测试中的正则表达式:
<script>
if ("Nami, Guilherme, P".match(/^[A-Z][a-z]{1,14}, [A-Z][a-z]{1,14}, [A-Z]\.?$/)) {
alert("Valid");
}
else {
alert("Invalid");
}
</script>
我会让它不区分大小写,并允许更多的字符。考虑像麦当劳和奥利里这样的名字。 – gilly3
更不用说像José,Noëlle,ゆきひろ和أسامة这样的名字...... –
使用正则表达式:
/^\w{0,15}, \w{0,15}, \w{0,15}\.?$/.test(name)
现在他有两个问题 –
改变了最后一部分是一个单一的数字(因为它是inital),并且可以有一个可选的点阵字符 –
我没有看到要求为5个字符的铅丹的名字和姓氏OP的要求。 – RobG
这应该工作(在我的测试工作):
// assuming there are no commas in fields
var string = "last name, first name, middle initial",
string_array = string.split(', '),
length = string_array.length;
for (i = 0; i < length; i++) {
// changing string to 'blah, firrrrrsssttt nammme, bbbbb' outputs the alert message
if (string_array[i].length > 15) alert('None of these can be more than 15 characters long. ' + string_array[i] + ' is too long');
}
这个功课? – Nicole
我知道名字长于15个字符的几个人。还有几个没有中间名(包括我自己)或几个中间名。对于决定什么是有效或无效的规则,应该给予充分的思考。 – gilly3