当前位置: 首页 > 知识库问答 >
问题:

正则表达式允许数字,中间只有一个连字符

沈博涉
2023-03-14

我正在尝试编写一个正则表达式以允许数字和中间只有一个hypen(不能在开始或结束时)说模式:02-0402是可以接受的,但模式:----0204-02-04-06是不可接受的

我试过这样做,但这将允许-在开始时,也允许多个-

'/^[0-9 \-]+$/'

我不太擅长正则表达式,所以一点解释会很有帮助。

编辑:很抱歉再次打扰你,但我需要的数字只有2位(123-346)应被视为无效。

共有3个答案

江向阳
2023-03-14

对于仅包含该模式的字符串,应使用以下方法

^(\d{2}-)?\d{2}$

一组2位数字,后跟减号,以一组不带减号的2位数字结尾。

曹建华
2023-03-14

相当简单:

^\d+(-\d+)?$

至少一个()数字(\d),后跟包含连字符减号(-)的可选组,再后跟至少一个数字。

杜苏燕
2023-03-14

试试这个:

/^\d{1,2}(-\d{1,2})?$/

一个或两个数字,后跟,可选,(连字符后跟一个或两个数字)

 类似资料:
  • 我在ASP.NET应用程序中有一个textbox,我需要使用正则表达式来验证用户输入字符串。要求字符串的连字符总数只能为一个。 匹配项: null 测试--您好 -测试- 测试-您好--

  • 问题内容: 允许数字和点的正则表达式是什么?关于\D这只允许数字,但不允许一个点,我需要它允许数字和一个点,这是一个浮点值,当我在中执行函数时需要有效,但我需要的只是正则表达式那只允许我需要它允许的。 这将是JavaScriptreplace函数的本机语言,用于删除非数字和其他符号(点除外)。 问题答案: 如果您想允许1和1.2: 如果您希望允许,和: 如果只允许1.2(仅浮动): \d允许位数(

  • 我的表单中有2个输入字段(电话号码),我应该验证这些输入。数字0-9和()-只允许,位数应该在5和11之间{5,11}。我试着用方法替换。你能解释一下,它是如何工作的吗?

  • 我正在努力与正则表达式和需要它的程序。 输入只需要字母数字键,还需要(只允许逗号、:、空格、/、-在特殊字符中) 据我所知,我已经尝试=(^[a-zA-Z0-9,:\S/-]*$),如果我错了,请纠正我。a-zA-Z0-9-字母数字键.,:-逗号和冒号-S-Space/-我不确定如何表示正斜杠,因此我对其进行了转义--破折号也不确定是否需要转义它。 如果可以更正并解释每个部分,将不胜感激。 提前谢

  • 我正在尝试编写一个正则表达式,允许数字和字符之间使用连字符(-),但删除字符之间的连字符,并用PHP字符串中的空格替换它。我是正则表达式的初学者,不知道如何编写正则表达式,有人能帮我吗 这里我需要的是一个类似于PHP的字符串 在应用正则表达式后,我需要的输出必须是这样的 还有其他方法吗?请帮忙