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

如何使regex只接受一个可选下划线?

蔺劲
2023-03-14

我有下面的正则表达式,它接受字母数字字符和很少其他语言字符。现在,我想在字符串中的任何位置只允许一个可选下划线(\u0)。你能帮助我实现这个目标吗?

const serverUserRegex = /^[\p{Ll}\p{Lm}\p{Lt}A-Za-z0-9\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf\u3130-\u318F\uAC00-\uD7AF]+$/ug

共有1个答案

督德泽
2023-03-14

强制执行此操作的一种直接方法是在模式的开头添加以下负面前瞻断言:

(?!.*_.*_)

这将拒绝任何有两个(或多个)下划线的输入,这意味着零个或一个下划线是可以接受的。您更新的模式:

const serverUserRegex = /^(?!.*_.*_)[_\p{Ll}\p{Lm}\p{Lt}A-Za-z0-9\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf\u3130-\u318F\uAC00-\uD7AF]+$/ug
//                                   ^^ add underscore to your character class here
 类似资料:
  • 我有一个只接受数字的mobileNumber正则表达式“[1-9][0-9]*”<但是我需要在开始时有一个可选的。但用户可能不会在开始时输入 例如9089098909 例如9089098909 例如919089098909 我最多可以接受13个字符<我正在做这个。谁能告诉我怎么解决这个问题吗?

  • 我正在开发一个数独小程序,我想制作它的单元格(扩展JTextField),以便它只接受0-9和长度为1之间的整数。稍后我会对它进行更多限制(以便它符合游戏规则)。我从: 在这里,我试图过滤输入,对于开始,我只是试图将其限制为整数和一个数字,但似乎我可以输入任意多的数字,而最后一行不会被触发。 想在这里得到一些帮助,谢谢:

  • 我正在使用DefaultTableModel,如下所示: 现在我想在“Selected”列中仅使一个复选框可选。这怎么能做到。我也试过下面的方法,但它不起作用。

  • 问题内容: 我试图将联系人保存在表中,但filechosser始终将其设置为所有文件。有没有办法我可以将其设置为仅接受.txt并将其设置为默认值或唯一选项。 问题答案: 您需要添加一个过滤器:

  • 我希望我的上载程序只允许这些类型: 文档,文档。 xls,xlsx。 ppt,pptx。 txt. pdf. 图像类型。 我怎样才能做到这一点呢?我应该在属性中放入什么?谢谢你的帮助。 编辑!!! 我还有一件事要问。当弹出窗口出现用于选择文件时,在右下角,有一个包含所有允许文件的下拉列表。在我的情况下,名单会很长。我在列表中看到,有一个名为的选项。我如何使它默认选择并消除所有其他选项? 任何帮助都

  • 这不起作用(找到元素,然后抛出“login_field.setvalue不是函数”): 我对这两种策略进行了一些跟踪: id(控制台日志): Appium服务器: null 7Fe8B296-0EA5-4FFB-9450-12245DE54BFA 88EE4E4F-E3DD-4068-91D6-C26860E538B4 但我认为这是因为这些ID是动态分配给使用Appium找到的元素的。 我还尝试在