【问题标题】:Regex expression for start and end with characters in between numbers以数字之间的字符开头和结尾的正则表达式
【发布时间】:2021-03-12 02:22:52
【问题描述】:

我在 javascript 中有一个要求,其中单词的开头和结尾是数字之间的字符。 例如S652354536667U

我尝试了模式

(/[A-Z]\d+[A-Z]$/).test(S652354536667U) // returns true ok
(/[A-Z]\d+[A-Z]$/).test(S65235Y4536667U) // returns true needed false

但它允许介于 S65235Y4536667U 之间的字符被接受。

感谢任何帮助。

谢谢

【问题讨论】:

    标签: javascript reactjs regex


    【解决方案1】:

    您需要在正则表达式的开头放置一个插入符号,以指示第一个字母在字符串的开头,即:

    ^[A-Z]\d+[A-Z]$
    

    【讨论】:

      【解决方案2】:

      您缺少^。应该是:

      ^[A-Z]\d*[A-Z]$
      

      您可以使用此站点快速测试您的正则表达式:https://regexr.com/

      【讨论】:

        【解决方案3】:

        你一开始就离开了caret

        ["S652354536667U", "S65235Y4536667U"].forEach(item => {
            console.log(/^[A-Z]\d+[A-Z]$/.test(item))
        })

        【讨论】:

          【解决方案4】:

          您需要在 reg ex 中将 ^ 放在开头,将 $ 放在末尾。否则,如果模式匹配输入中的其他任何地方,它将返回 true

          (/^[A-Z]\d+[A-Z]$/).test(S652354536667U) // returns true 
          (/^[A-Z]\d+[A-Z]$/).test(S65235Y4536667U) // returns true 
          

          查看下图。它没有指定起始位置。所以,从匹配 reg ex 的字符 'Y' 开始

          下面是起始位置

          【讨论】:

            猜你喜欢
            • 2013-08-04
            • 2016-12-07
            • 1970-01-01
            • 2015-04-27
            • 1970-01-01
            • 2017-09-17
            • 1970-01-01
            • 1970-01-01
            • 2019-07-20
            相关资源
            最近更新 更多