正则的匹配模式之前只有i``g``m 增加 d

    1. // https://peaku.co/questions/65852-%C2%BFpor-que-vs-code-typescript-no-reconoce-la-propiedad-de-indices-en-el-resultado-de-regexexec
    2. type RegExpMatchArrayWithIndices = RegExpMatchArray & {
    3. indices: Array<[number, number]>
    4. }
    5. {
    6. const re1 = /a+(?<Z>z)?/d
    7. // indices are relative to start of the input string:
    8. const s1 = 'xaaaz'
    9. const m1 = re1.exec(s1) as unknown as RegExpMatchArrayWithIndices
    10. console.log(m1.indices[0]) // [1, 5]
    11. console.log(s1.slice(...m1.indices[0])) // aaaz
    12. console.log(m1.indices[0][0] === 1) // true
    13. console.log(m1.indices[0][1] === 5) // true
    14. console.log(s1.slice(...m1.indices[0]) === 'aaaz') // true
    15. console.log(m1.indices[1][0] === 4) // true
    16. console.log(m1.indices[1][1] === 5) // true
    17. console.log(s1.slice(...m1.indices[1]) === 'z') // true
    18. console.log((m1 as any).indices.groups['Z'][0] === 4) // true
    19. console.log((m1 as any).indices.groups['Z'][1] === 5) // true
    20. console.log(s1.slice(...(m1 as any).indices.groups['Z']) === 'z') // true
    21. // capture groups that are not matched return `undefined`:
    22. const m2 = re1.exec('xaaay') as unknown as any
    23. console.log(m2.indices[1] === undefined) // true
    24. console.log(m2.indices.groups['Z'] === undefined) // true
    25. }