截断电子邮件字段值之前@和分配到另一个字段

truncate email field value before @ and assign to another field

本文关键字:字段 分配 另一个 电子邮件      更新时间:2023-09-26

希望这有意义....基本上,我有一个表单,想要输入"email"字段,截断/修剪"@"符号之前的值,并将该值赋给另一个隐藏字段。

EDIT/add:此外,如果可能的话,在同一函数中,自动生成和附加随机数(01和99之间就足够了)以确保没有"重复/匹配"隐藏字段值将是非常好的…例如,如果电子邮件地址是一些普通的东西,如info@blahblah.com,其中"info"可能会被阻止,如果已经在系统中,但info46和info07就可以了。

如果不适合添加这样的问题,我道歉,并将编辑它,将问题标记为基于原始标准的回答,并打开一个新的问题,希望可以添加到这个。

所以基本上如果有人输入"JohnSmith@hotmail.com", "JohnSmith26"(作为一个例子)将被分配为另一个隐藏表单字段的值。

的例子:

<label>Email Address:</label><input type="text" id="email" name="email" value=""     size="30" maxlength="80"/>
    <input type="hidden" id="hiddenfield" name="hiddenfield" value="truncated email" />

我看到了这个线程,但我不使用coldfusion等,我希望只是找到一个简单的方法来做类似的形式:我如何修剪电子邮件输入地址,所以只有@之前的数据输入到数据库?

我正在寻找使用javascript/jQuery将截断值分配给其他字段的最佳方法。

您可能想要这样的内容

Javascript

var email = document.getElementById("email"),
    hidden = document.getElementById("hiddenfield");
function transferTruncated() {
    var target = this,
        name;
    if (target.value.indexOf("@") !== -1) {
        name = target.value.split("@")[0].trim();
        if (name && name.search(/'s/) === -1) {
            hidden.value = name;
        } else {
            hidden.value = "truncated email";
        }
    } else {
        hidden.value = "truncated email";
    }
}
email.addEventListener("change", transferTruncated, false);
在jsfiddle

注意:我从输入字段中删除了隐藏类型,以便您可以看到它,并且您可能希望在分配它之前检查名称是否进一步有效

首先使用split the email address,然后使用regex to remove white spaces,然后将其分配给隐藏字段

var email = document.getElementById('email').value.split('@')[0],
    hidden = document.getElementById('hiddenfield'),
    trimmedValue = email.replace(/'s+/g, '');
hidden.value = trimmedValue ;