首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在javascript和react中是否存在自定义页范围验证的regex模式?

在javascript和react中是否存在自定义页范围验证的regex模式?
EN

Stack Overflow用户
提问于 2021-09-16 07:49:00
回答 2查看 96关注 0票数 0

我需要一个页面序列的正则表达式

匹配

  • 1
  • 1,4-5
  • 1,4-5,8,11,13-14

但与不匹配

  • 1,,,
  • 1,4-5-
  • 1,4-2233

我尝试过以下模式,但它们不起作用:

代码语言:javascript
运行
复制
/^(\d*-\d*,?|\d*,?)*$/
/^(\d*-{1}\d*,?|\d*,?)*$/

我还希望在用户输入时验证用户输入,因此在某些情况下,模式需要允许跟踪-,。该示例用于允许使用特定模式输入的代码如下所示:

代码语言:javascript
运行
复制
const customPageInputChange = (e) => {
  if(e.target.value.match(/.../) !== null) {
    setCustomPage(e.target.value)
  }
}

有关输入验证的完整示例,请参见https://jsfiddle.net/mayankshukla5031/4zqwq1fj/

EN

回答 2

Stack Overflow用户

发布于 2021-09-16 07:59:14

一个可能的指标是:

代码语言:javascript
运行
复制
^(\d+(-\d+)?, )*\d+(-\d+)?$

有关测试用例,请参见https://regex101.com/r/txVh3e/1

如果您还想检查页面是否在增加,那么regex实际上并不合适,您应该选择以编程方式检查字符串。

如果要在用户输入时验证用户输入,则需要一个允许尾随-,的正则表达式。一个可能的指标是:

代码语言:javascript
运行
复制
^(\d+(-\d+)?, ?)*(\d+-?\d*)?$

测试用例参见https://regex101.com/r/rKx6lq/1,演示参见https://jsfiddle.net/qtb4yd7s/

票数 2
EN

Stack Overflow用户

发布于 2021-09-16 08:01:09

你可能会用

代码语言:javascript
运行
复制
^\d+(?:-\d+)?(?:,\s*\d+(?:-\d+)?)*$

在Javascript中,您可以使用regex.test(str)返回一个布尔值,以查看模式是否匹配。

在部分中,模式匹配:

  • 字符串的^开始
  • \d+匹配1+数字
  • (?:-\d+)?可选匹配-和1+数字
  • (?:非捕获组作为一个整体进行匹配
    • ,\s*匹配逗号和可选空格字符
    • \d+(?:-\d+)?与以前的模式相同

  • )*关闭非捕获组并可选择地重复到als匹配单个事件
  • 字符串的$末端

Regex演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69204368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档