Javascript 限制接受非英语字符的电子邮件

Javascript 限制接受非英语字符的电子邮件,javascript,regex,email,email-validation,Javascript,Regex,Email,Email Validation,首先,我检查了可能的解决方案,但找不到有助于解决问题的方法 简言之,我有从用户那里获取电子邮件的现有逻辑,并对一些条件进行测试,例如确保它没有撇号、双@符号和连续点等。该逻辑不是使用正则表达式实现的 现在,我有了一个新的要求,我们需要限制用户输入非英语字符,限制的意思是在用户输入非英语字符时尝试捕捉它,或者在值传递给验证上述其他条件的javascript函数时捕捉它 所以我在这里找到了一些答案并尝试了: 这是我的密码: <input type="text" id="ctEmailAddre

首先,我检查了可能的解决方案,但找不到有助于解决问题的方法

简言之,我有从用户那里获取电子邮件的现有逻辑,并对一些条件进行测试,例如确保它没有撇号、双@符号和连续点等。该逻辑不是使用正则表达式实现的

现在,我有了一个新的要求,我们需要限制用户输入非英语字符,限制的意思是在用户输入非英语字符时尝试捕捉它,或者在值传递给验证上述其他条件的javascript函数时捕捉它

所以我在这里找到了一些答案并尝试了:

这是我的密码:

<input type="text" id="ctEmailAddress" name="ctEmailAddress" autocomplete="off"
          size="40" maxlength="255" value="${userinfo.emailAddress}" oncopy="return false;" onpaste="return false;" onkeypress="suppressNonEng(event)">
所以我使用了link中的js函数,它与当前的逻辑是分离的。问题是,它仍然允许传递非英语字符,例如法语

这同样适用于此功能:

function suppressNonEng(event){
    var key = event.which;
    if(key > 128){
        alert("Email address can be entered only in English. Please try again.");
    }
}
同样,法语字母在阅读过程中没有问题

我的问题是,如何确保值仅为英文字符?我应该使用正则表达式还是有更好的解决方案?请给我一些建议。谢谢。

说明

此正则表达式将匹配ascii 0-127之外的任何字符

例子 现场演示

示例文本

Here are some sample non-english characters: ü, ö, ß, and ñ. 
样本匹配

[0][0] = ü
[1][0] = ö
[2][0] = ß
[3][0] = ñ
解释
从正则表达式中删除
g
修饰符,因为它与
RegExp#test
一起使用,为什么需要阻止此类非英语字符?这些要求对我来说似乎很幼稚,我看不出你想用它实现什么。@RaphaelMiedl非英语字符在我们的数据库中造成了问题,高级开发人员要求我限制输入非英语电子邮件。请解释您的代码是如何工作的,或者提供@Zhaiyk。如果非英语字符导致数据库出现问题,请更改字符集(例如,如果您使用MySQL,请改为
utf8
)。除非您告诉我是您的公司为您的客户创建电子邮件地址,否则阻止非英语字符将大大降低您网站的潜在市场(毕竟,您不能期望客户创建新的电子邮件地址以订阅您的网站)。
Here are some sample non-english characters: ü, ö, ß, and ñ. 
[0][0] = ü
[1][0] = ö
[2][0] = ß
[3][0] = ñ
NODE                     EXPLANATION
----------------------------------------------------------------------
  [^\x00-\x7F]+            any character except: ascii 0-127 also known as
                           '\x00' to '\x7F' (1 or more times 
                           (matching the most amount possible))
----------------------------------------------------------------------