Javascript正则表达式查询

Javascript正则表达式查询,javascript,regex,hyphen,Javascript,Regex,Hyphen,我需要一个正则表达式,它只允许0-9、a-z、a-z、连字符、问号和“/”斜杠字符。此外,长度应仅在5到15之间 好心帮忙 我尝试了以下方法,但不起作用 var reg3 = /^([a-zA-Z0-9?-]){4,15}+$/; alert(reg3.test("abcd-")); 长度应仅在5到15之间 这就是为什么你有这个 {4,15}+ 只需使用{5,15};它已经是一个量词了,在它之后是一个+,不起作用。除此之外,小组是没有必要的,但事情应该是可行的 /^[a-zA-Z0-9?/-

我需要一个正则表达式,它只允许0-9、a-z、a-z、连字符、问号和“/”斜杠字符。此外,长度应仅在5到15之间

好心帮忙

我尝试了以下方法,但不起作用

var reg3 = /^([a-zA-Z0-9?-]){4,15}+$/;
alert(reg3.test("abcd-"));
长度应仅在5到15之间

这就是为什么你有这个

{4,15}+
只需使用
{5,15}
;它已经是一个量词了,在它之后是一个
+
,不起作用。除此之外,小组是没有必要的,但事情应该是可行的

/^[a-zA-Z0-9?/-]{5,15}$/
(我还添加了一个斜杠字符。)

长度应仅在5到15之间

这就是为什么你有这个

{4,15}+
只需使用
{5,15}
;它已经是一个量词了,在它之后是一个
+
,不起作用。除此之外,小组是没有必要的,但事情应该是可行的

/^[a-zA-Z0-9?/-]{5,15}$/
(我还添加了一个斜杠。)

两个问题

  • 您需要
    {5,15}
    而不是
    {4,15}+
  • 需要包括
    /
  • 您的代码可以重写为

    var reg3 = new RegExp('^[a-z0-9?/-]{5,15}$', 'i'); // i flag to eliminate need of A-Z
    alert(reg3.test("a1?-A7="));
    
    /^[a-z0-9?/-]{5,15}$/i   // i flag to eliminate need of A-Z
    
    更新

    让我们不要混淆“可以是”和“必须是”,集中精力于我试图传达的实际内容

    {4,15}+
    部分在
    /^([a-zA-Z0-9?-]){4,15}+$/
    中应写为
    {5,15}
    ,并且必须包括
    /
    ;这将使您的regexp

    /^([a-zA-Z0-9?/-]){5,15}$/
    
    哪些可以写为

    var reg3 = new RegExp('^[a-z0-9?/-]{5,15}$', 'i'); // i flag to eliminate need of A-Z
    alert(reg3.test("a1?-A7="));
    
    /^[a-z0-9?/-]{5,15}$/i   // i flag to eliminate need of A-Z
    
    另外,我希望大家都能使用
    /I

    夫妇问题

  • 您需要
    {5,15}
    而不是
    {4,15}+
  • 需要包括
    /
  • 您的代码可以重写为

    var reg3 = new RegExp('^[a-z0-9?/-]{5,15}$', 'i'); // i flag to eliminate need of A-Z
    alert(reg3.test("a1?-A7="));
    
    /^[a-z0-9?/-]{5,15}$/i   // i flag to eliminate need of A-Z
    
    更新

    让我们不要混淆“可以是”和“必须是”,集中精力于我试图传达的实际内容

    {4,15}+
    部分在
    /^([a-zA-Z0-9?-]){4,15}+$/
    中应写为
    {5,15}
    ,并且必须包括
    /
    ;这将使您的regexp

    /^([a-zA-Z0-9?/-]){5,15}$/
    
    哪些可以写为

    var reg3 = new RegExp('^[a-z0-9?/-]{5,15}$', 'i'); // i flag to eliminate need of A-Z
    alert(reg3.test("a1?-A7="));
    
    /^[a-z0-9?/-]{5,15}$/i   // i flag to eliminate need of A-Z
    
    另外,我希望大家都能使用
    /I

    这就是您需要的:

    if (/^([a-z\/?-]{4,15})$/i.test(subject)) {
        // Successful match
    } else {
        // Match attempt failed
    }
    
    正则表达式解释

    这就是您需要的:

    if (/^([a-z\/?-]{4,15})$/i.test(subject)) {
        // Successful match
    } else {
        // Match attempt failed
    }
    
    正则表达式解释


    您至少需要将4更改为5如果希望介于5和15之间,为什么要编写
    {4,15}
    ?还有,
    {4,15}+
    应该是什么意思?
    +
    意味着
    {0,}
    ,它不是必需的。尝试一些在线正则表达式编辑器,它将帮助您更快地学习,因为您可以使用正则表达式。是一个例子。您至少需要将4更改为5如果您希望介于5和15之间,为什么要编写
    {4,15}
    ?还有,
    {4,15}+
    应该是什么意思?
    +
    意味着
    {0,}
    ,它不是必需的。尝试一些在线正则表达式编辑器,它将帮助您更快地学习,因为您可以使用正则表达式。是一个例子。你知道你可以做
    var reg3=/^([a-z0-9?\-]){5,15}$/i,对吗?您不需要使用
    新的RegExp
    。是的,这是真的(我知道)。可以重写吗?当然可以,但不是更好
    newregexp
    不适用于静态字符串。您知道可以执行
    var reg3=/^([a-z0-9?\-]){5,15}$/i,对吗?您不需要使用
    新的RegExp
    。是的,这是真的(我知道)。可以重写吗?当然可以,但不是更好
    new RegExp
    不适用于静态字符串。