我有一个精选的电子邮件地址选项,如下所示:
<select id="employee-email">
<option value="employee1@employer.com">Employee Name</option>
<option value="employee2@employer.com">Employee Name</option>
<option value="employee3@employer.com">Employee Name</option>
</select>
我有一个名为email
的变量。根据此电子邮件,我想选择相应的员工姓名。如果电子邮件地址完全匹配,则可以使用,例如
var email = 'employee1@employer.com';
$("#employee-email option[value='" + email + "']").attr("selected", true);
但email
可以来自许多不同的域中的任何一个 - 它可以是employee1@employer.com
,employee1@employer.de
,employee1@employer.co.uk
,但它始终对应于同一个员工。所以我想要做的是将字符串拆分为例如employee1
并根据此选择选项。遗憾的是,value=
选择器不适用于部分匹配。谁能建议怎么做?
答案 0 :(得分:2)
将电子邮件拆分为@
,然后使用shift()
获取第一部分,即员工,然后在属性开头使用选择器以获取以与员工匹配的值开头的选项,并将其设置为选中
var email = 'employee1@employer.com';
$("#employee-email option[value^='" + email.split('@').shift() + "']").prop("selected", true);
答案 1 :(得分:0)
这是一个功能示例,如何使用'@'符号获取电子邮件地址。
它获取电子邮件地址并仅返回字符串,直到'@'。
所以你可以这样做
var email = cutEmail(tempEmail);
// your code
//the function to cut the string
function cutEmail(email){
str ='';
for(i=0;i<email.length; i++){
if(email.charAt(i)== '@'){
break;
}
str+= email.charAt(i);
}
return(str);
}