Regex for Should由8到20个数字字符组成,包括空格和一个连字符,并且连字符不能是第一个或最后一个字符



我试图为上述规则编写正则表达式,我尝试了这种方式,但它不起作用

"(?=^([0-9]|-){8,20}$)^[0-9]+[/-/][0-9]+$"

因此,您可以通过创建一个正则表达式来测试字符串是否由8到20个字符(数字、空格或连字符(组成,其中连字符不能是第一个或最后一个字符,从而简化问题:

/^[ds][ds-]{6,18}[ds]$/

然后测试字符串是否包含单个hypen:

/^[^-]*-[^-]*$/

然后它包含一个空间:

/s/

我很感激这是一个与您所要求的略有不同的答案,但我认为这可能有助于

我认为只有一个正则表达式不可能检查字符串的长度和格式。然而,您可以通过两个步骤来实现这一点,例如:

var formatRegex = /^d+(?:d|s)*-(?:d|s)+$/;
var myText = '111-111 11 111';
if (formatRegex.test(myText)) {
  if (myText.length >= 8 && myText.length <= 20) {
    console.log('ok');
  }
}
^[0-9](?:([0-9]{5,17}-)|(?=[0-9]*[-][0-9]*$)[0-9-]{6,18})[0-9]$

此正则表达式正在工作解释:它将检查以[0-9]开头、以[0-9'结尾的字符串现在,对于剩余长度的字符串,我们可以使用以下模式(?:[0-9]{5,17}|(?=[0-9][-][0-9]$([0-9-]{6,18}(在哪里?:([0-9]{5,17}-)将检查是否存在5到17个数字和一个字符串演示:https://regex101.com/r/eO3jK8/1

相关内容

  • 没有找到相关文章

最新更新