javascript - 如何创建一个可选组,但该组是否存在与我的正则表达式最匹配?

标签 javascript regex option-type regex-group optional-values

我有这个 JS 正则表达式:

var re = /(\w\w\d-{1})?\w\w-{1}\w-{1}?/;

对于文件名,第一组必须是可选的:

完整名称示例。示例:

qq8-qq-q-anything => OK

没有第一组:

qq-q-anything => OK

但是如果我放任何东西,仍然有效:

anything-qq-q-anything => 好的

我希望第一组是可选的,但如果文件名有第一组,它必须与我的正则表达式单词或数字匹配。

最佳答案

您应该指定字符串应以您的正则表达式“开头”,因此只需添加 ^ 来指定起点。

const re = /^(\w\w\d-{1})?\w\w-{1}\w-{1}?/;

const strs = ['qq8-qq-q-anything', 'qq-q-anything', 'anything-qq-q-anything'];


const result = strs.map(str => re.test(str));

console.log(result);

关于javascript - 如何创建一个可选组,但该组是否存在与我的正则表达式最匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50163672/

相关文章:

ruby - NoMethodError: `match?' 的未定义方法 "Ruby":String

javascript - 如何使用 JavaScript/Jquery 从字符串中获取所有日期和时间?

swift - 在 Swift 中使用非可选空数组初始化字典

swift - 问号是必须的吗?

javascript - 如何停止与不同父级的可删除事件传播?

javascript - 将图像存储在高速缓存中

javascript - 主干获取模型然后渲染 View

javascript - d3 选择 .attr、.property 等 setter 方法在值未定义时的行为

使用 R 和正则表达式将第一个逗号替换为字符串中的分号

ios - 在委托(delegate)内部访问时 IBOutlet 值为零