Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以数字开头但仅以一个';结尾的字符串的正则表达式-';还有一个字母表_Javascript_Regex - Fatal编程技术网

Javascript 以数字开头但仅以一个';结尾的字符串的正则表达式-';还有一个字母表

Javascript 以数字开头但仅以一个';结尾的字符串的正则表达式-';还有一个字母表,javascript,regex,Javascript,Regex,我正在尝试编写一个正则表达式模式检查,以检查我的字符串是否以数字开头,是否仅以“-”和一个字母结尾。应该通过的正则表达式的相同部分是1234-M 我是怎么写的?我写了这个,但它允许在末尾有多个字母,并且没有添加“-” “^\d*(?:?[A-Za-z]{1,1})*$” 感谢您的帮助也许这就是您的意思 ^\d+-[A-Za-z]$ 主要更正如下: 您总是希望在开头至少有一个数字,因此请使用\d+而不是\d*。后者可以匹配0个数字 你写的是下划线而不是连字符,打字错误 {1,1}是不必要的 *

我正在尝试编写一个正则表达式模式检查,以检查我的字符串是否以数字开头,是否仅以“-”和一个字母结尾。应该通过的正则表达式的相同部分是
1234-M

我是怎么写的?我写了这个,但它允许在末尾有多个字母,并且没有添加“-”

“^\d*(?:?[A-Za-z]{1,1})*$”


感谢您的帮助

也许这就是您的意思

^\d+-[A-Za-z]$
主要更正如下:

  • 您总是希望在开头至少有一个数字,因此请使用
    \d+
    而不是
    \d*
    。后者可以匹配0个数字
  • 你写的是下划线而不是连字符,打字错误
  • {1,1}
    是不必要的
  • *
    结尾处表示结尾处可以有0个或更多字母。你只需要一个字母,所以你应该删除它
  • 因此,不需要非捕获组

请张贴完整的相关代码。是否要验证字符串?是实时输入验证吗?重新格式化字符串?你说你想匹配
-
,为什么模式中有
<代码>*匹配0个或多个匹配项,因此
(?:?[A-Za-z])*
匹配
ASGHFdfgthh
字符串。如果您需要1个
和1个字母,请使用
(?:[a-zA-Z])?
而不是
(?:[a-zA-Z]{1,1})*
。同样的量词问题可能存在于
\d*
,您可能需要
\d+
。由于它是一个字符串文字,您应该将反斜杠加倍,或者使用正则表达式文字:
/^\d+(?:[a-Za-z])?$/
您是否尝试过
^\d+-[a-Za-z]$
?@Bohemian是的,但不起作用如果您解释了您正在做的事情,您会得到更好、更快的帮助。@kingsley如果它不起作用,你为什么用相同的正则表达式接受答案?它怎么不起作用?@KingsleySimon你能描述一下它怎么不起作用吗?哪些字符串应该匹配但不匹配?什么字符串匹配但不应该匹配?