【发布时间】:2017-12-29 10:12:28
【问题描述】:
我正在尝试接受一封电子邮件,但最后没有空格或空白。 我尝试了两种变体
pattern="^[A-Za-z0-9._%+-]+@[a-z0-9.-]+.[a-z]{1,4}[^\s]+$" >
pattern="^[A-Za-z0-9._%+-]+@[a-z0-9.-]+.[a-z]{1,4}\S$">
两者都不起作用,输入最后接受空格。我的完整输入行是
input type="email" id="guestUserEmail" name="guestEmail" data-pattern-error="Email 无效" data-required-error="请输入电子邮件地址" required pattern="^[A- Za-z0-9._%+-]+@[a-z0-9.-]+.[a-z]{1,4}$"
我参考了这个答案regex for no whitespace at the begining and at the end but allow in the middle
请推荐!
【问题讨论】:
-
最后用
*$代替+$ -
您也可以这样做,首先使用
trim()函数修剪该电子邮件String,然后应用正则表达式。 -
@ArvindKatte 我已经厌倦了使用 * & + 或者两者都不起作用。关于修剪,我确实建议过,但具体要求是在最后添加空间时显示错误。我无法理解为什么 ^\s 或 \S 不起作用
-
使用这个
^[A-Za-z0-9._%+-]+@[a-z0-9.-]+.[a-z]{1,4}[^\\S]+$它对我有用 -
域名部分无法在 TLD 中使用破折号。 localpart 拒绝
*和毫无疑问的其他一些允许的字符。这两个部分显然都无法处理国际化的电子邮件地址,尽管这很可能超出了这里的范围。 emailregex.com 有一个相当全面的测试套件,尽管它还涵盖了在电子邮件From:标头中编码 cmets、真实姓名和其他装饰的方式的变化。
标签: regex validation email