Javascript JS正则表达式只允许数字、分号和连字符
我正在构建一个只接受以下格式字符串的应用程序:Javascript JS正则表达式只允许数字、分号和连字符,javascript,regex,Javascript,Regex,我正在构建一个只接受以下格式字符串的应用程序: 12345(仅一个数字) 12345;23456(两个或多个数字之间用;) 12345-12367(由a-分隔的数字范围) java脚本regex应该只允许上述格式&不应该接受任何其他格式或符号。有人能为这个提供正则表达式吗?这是您需要的正则表达式:/^\d+(;\d+*?-\d+)$/ (;\d+)*将检查以“;”分隔的多个数字 -\d+将检查范围这是您需要的正则表达式:/^\d+(;\d+*|-\d+)?$/ (;\d+)*将检查以“;”分隔的
java脚本regex应该只允许上述格式&不应该接受任何其他格式或符号。有人能为这个提供正则表达式吗?这是您需要的正则表达式:
/^\d+(;\d+*?-\d+)$/
(;\d+)*
将检查以“;”分隔的多个数字
-\d+
将检查范围这是您需要的正则表达式:/^\d+(;\d+*|-\d+)?$/
(;\d+)*
将检查以“;”分隔的多个数字
-\d+
将检查范围尝试
^[0-9]+([;-][0-9]+)?$
这应该行得通
[0-9]+
匹配一个或多个数字
[;-]匹配一个代码>或a-
(…)?
是可选的匹配项
^
锚定字符串的开头和$
锚定字符串的结尾
^[0-9]+([;-][0-9]+)?$
这应该行得通
[0-9]+
匹配一个或多个数字
[;-]匹配一个代码>或a-
(…)?
是可选的匹配项
^
锚定字符串的开头,$
锚定字符串的结尾假设每次要查找的数字部分都是5位数字,以下内容应该与您想要的匹配
[0-9]{5}((;|-)[0-9]{5}){0,1}
如果需要不同的长度,可以使用另一个固定长度或范围更新{5},例如{3,5}来表示3到5位的字符串。如果您想在列出的speperator中捕获两个以上的数字,可以使用
[0-9]{5}((;|-)[0-9]{5})*
假设您要查找的数字部分每次为5位数字,则以下内容应与您想要的内容相匹配
[0-9]{5}((;|-)[0-9]{5}){0,1}
如果需要不同的长度,可以使用另一个固定长度或范围更新{5},例如{3,5}来表示3到5位的字符串。如果您想在列出的speperator中捕获两个以上的数字,可以使用
[0-9]{5}((;|-)[0-9]{5})*
^[0-9-;]{0,50}$
0-9仅接受数字
-仅允许-和
{0,50}只允许50个字符^[0-9-;]{0,50}$
0-9仅接受数字
-仅允许-和
{0,50}只允许50个字符您将无法使用正则表达式来保证最后一个字符是有效的范围。如果您使用分号作为字段之间的分隔符,可能您应该拆分字符串
并检查每个元素是否匹配其他两个条件。前两个条件很简单:/^(\d+);\d+?$/
@Michael我想使用javascript检查两个数字之间是否有连字符。我还有其他检查来确定它是否是有效的范围。@Packwolf那么已经发布的ansers中的任何一个都可以完成这项工作。您将无法使用正则表达式来保证最后一个是有效的范围。如果您使用分号作为字段之间的分隔符,也许您应该拆分字符串并检查每个元素是否与其他两个条件匹配。前两个条件很简单:/^(\d+)(;\d+)?$/
@Michael我想使用javascript检查两个数字之间的连字符。我还有其他检查,看看它是否是一个有效的范围。@Packwolf,那么已经发布的ansers中的任何一个都可以完成这项工作。如果它是字符类中的第一个或最后一个字符,我想不需要对连字符进行转义。此处相同=]
只是注释,因为有些人更喜欢代码“cleaner”(不必要的转义较少)。如果是字符类中的第一个或最后一个字符,则无需转义连字符。此处相同=]
只是注释,因为有些人更喜欢代码“更干净”(不必要的转义更少)。