繁体   English   中英

以数字之间的字符开头和结尾的正则表达式

[英]Regex expression for start and end with characters in between numbers

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

我试过模式

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

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

任何帮助表示赞赏。

谢谢

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

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

你错过了^ 它应该是:

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

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

你一开始就离开了插入符号

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

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

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

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

在此处输入图像描述

下面是与起始 position

在此处输入图像描述

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM