我需要一个页面序列的正则表达式
匹配
但与不匹配
我尝试过以下模式,但它们不起作用:
/^(\d*-\d*,?|\d*,?)*$/
/^(\d*-{1}\d*,?|\d*,?)*$/我还希望在用户输入时验证用户输入,因此在某些情况下,模式需要允许跟踪-和,。该示例用于允许使用特定模式输入的代码如下所示:
const customPageInputChange = (e) => {
if(e.target.value.match(/.../) !== null) {
setCustomPage(e.target.value)
}
}有关输入验证的完整示例,请参见https://jsfiddle.net/mayankshukla5031/4zqwq1fj/。
发布于 2021-09-16 07:59:14
一个可能的指标是:
^(\d+(-\d+)?, )*\d+(-\d+)?$有关测试用例,请参见https://regex101.com/r/txVh3e/1。
如果您还想检查页面是否在增加,那么regex实际上并不合适,您应该选择以编程方式检查字符串。
如果要在用户输入时验证用户输入,则需要一个允许尾随-和,的正则表达式。一个可能的指标是:
^(\d+(-\d+)?, ?)*(\d+-?\d*)?$测试用例参见https://regex101.com/r/rKx6lq/1,演示参见https://jsfiddle.net/qtb4yd7s/。
发布于 2021-09-16 08:01:09
你可能会用
^\d+(?:-\d+)?(?:,\s*\d+(?:-\d+)?)*$在Javascript中,您可以使用regex.test(str)返回一个布尔值,以查看模式是否匹配。
在部分中,模式匹配:
^开始\d+匹配1+数字(?:-\d+)?可选匹配-和1+数字(?:非捕获组作为一个整体进行匹配,\s*匹配逗号和可选空格字符\d+(?:-\d+)?与以前的模式相同)*关闭非捕获组并可选择地重复到als匹配单个事件$末端https://stackoverflow.com/questions/69204368
复制相似问题