我已經爲我們的表單寫了一個小的JQuery/Javascript添加,它接受一個單一的全名輸入並將它分解爲名和姓組件。如果輸入中有三個或更多名稱並詢問哪個組合是正確的,它將打開一個模式。一個字符串多個變量與索引檢查
我的下一步是找到並剝離可能已輸入的任何後綴,如Jr,Sr,III等。我目前剝離了最後四個字符並使用indexOf檢查它們是否包含後綴字符串(Jr,Sr,III等)。但每一行只檢查一個可能的後綴,我想知道是否有一些js的魔術會在一行中檢查多個後綴。我當前的代碼如下:
var nameVal = $('#name').val();
var suffix = nameVal.slice(-4);
if (suffix.toLowerCase().indexOf(" jr") != -1) {
var nameSplit = nameVal.slice(0, -3).split(" ");
} elseif (suffix.toLowerCase().indexOf(" iii") != -1) {
var nameSplit = nameVal.slice(0, -4).split(" ");
} else {
var nameSplit = nameVal.split(" "); }
我總是可以做的很好的老||並且使用不同的indexOf值繼續添加額外的(suffix.toLowerCase()。indexOf(「jr」)!= -1),但是我希望儘可能保持代碼更緊湊,我的「小」腳本已經是3k。
一旦我得到這個排序,最後一步將確定如何保留姓氏值,這樣當進入其他名字並再次調用腳本時,可以進一步下載表單,它可以檢查是否選擇最後一個名稱與新條目匹配並繞過模式彈出。
當你在這樣的塊內定義變量時,你將會有非常意想不到的結果。瞭解更多關於範圍和提升的信息[here](http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Histing) – jbabey 2012-03-17 00:46:19
@jbabey:這是一個很難解決的問題,除非在代碼中聲明它們之前使用變量。而且,大多數人使用'for(var i = 0; i
2012-03-17 00:56:42