简体   繁体   English

JavaScript正则表达式-如何只允许一个连字符?

[英]javascript regular expression - how to allow only one hyphen?

I have the following jscript code: 我有以下jscript代码:

 var email = /^[a-z0-9'*+/=?^_`{|}~-]+(?:\.[a-z0-9'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;

  if (s.match(email)) {
        return true;
  } else {
        return false;
  }

Now the end users are saying that they want "-" in the local part of the email address. 现在,最终用户说他们希望在电子邮件地址的本地部分显示“-”。 (i didn't even know that was legit) But I need to prevent multiple hyphens I think - as per http://rumkin.com/software/email/rules.php And also I don't think it can start with a hyphen. (我什至不知道这是合法的),但我需要防止多个连字符出现-根据http://rumkin.com/software/email/rules.php,而且我也不认为它可以以连字符。

But i'm not sure how to change this code to accomplish that. 但是我不确定如何更改此代码来实现这一目标。

What I've tried 我尝试过的

var email = /^[a-z0-9'*+/=?^_`{|}~-]+(?:\.\-[a-z0-9'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;

That allows me to enter a hyphen, but it doesn't limit it to one. 这使我可以输入连字符,但不限于此。

You are not restricted to do everything in one regex: 您不受限于在一个正则表达式中做所有事情:

var email = /^[a-z0-9'*+\/=?^_`{|}~-]+(?:\.[a-z0-9'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
if (!s.match(email)) return false;

if (s[0] == '-') return false;
if (s[s.length-1] == '-') return false;
if (s.indexOf('--') != -1) return false;
return true;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 仅使用不带正则表达式的 JavaScript 允许数字和连字符 - Allow numbers and Hyphen only using JavaScript without Regular Expression 如何在 javascript 中使用正则表达式在用户表单输入中只允许一个(破折号或点或下划线)? - How do i allow only one (dash or dot or underscore) in a user form input using regular expression in javascript? JavaScript中的正则表达式连字符有问题 - Regular expression in javascript trouble with hyphen jQuery中的正则表达式仅允许一次匹配 - Regular expression in jquery allow only one match Javascript 只允许字母表、空格和 - 的正则表达式 - Javascript regular expression that allow only alphabet, space and - only javascript中只有一个url验证的正则表达式 - Regular expression for only one url validation in javascript 在正则表达式javascript中仅使用字符之一 - Use only one of the characters in regular expression javascript 正则表达式不允许所有相同的数字用连字符分隔 - Regular expression to not allow all same digits separated by hyphen JavaScript中的正则表达式,仅允许带有可选2位小数的数字 - Regular Expression in JavaScript to allow only numbers with optional 2 decimals Javascript正则表达式在开始处仅允许一个加号(+),并且字符串的长度不应超过15个字符数 - Javascript Regular Expression allow only one plus (+) sign at start and length of string should not more than 15 character number only
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM