我有这个JS正则表达式:

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


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

完整名称示例。例:

qq8-qq-q-anything => OK


没有第一组:

qq-q-anything => OK


但是,如果我放任何东西,仍然可以工作:

任何-qq-q-任何=>确定

我希望第一组为最佳,但是如果文件名具有第一组,则它必须与我的正则表达式单词wor digit匹配。

最佳答案

您应该指定字符串应以正则表达式“开头”,因此仅添加^即可指定起点。



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 - 如何创建一个 optional 组,但是如果该组与我的正则表达式最匹配?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50163672/

10-13 04:07