我已经为我们的表单写了一个小的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