我試圖解決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