Attach (recommended) or Link to PDF file here:
https://www.meti.go.jp/policy/consumer/seian/denan/file/04_cn/scope/haninokaishaku_211228.pdf

Configuration:
- Web browser and its version: Google Chrome 107.0.5304.121
- Operating system and its version: Windows 10 Pro 21H2 19044.1826
- PDF.js version: v3.0.279
- Is a browser extension: No

Steps to reproduce the problem:
1. Search "ソレノイド" by Ctrl+F.

What went wrong? (add screenshot)
"ソレノイド" on page 10 must be hit.
If search "ソ レノイド" (add space between ソ and レ), it hits.

![image](https://user-images.githubusercontent.com/110510565/204415638-450c0b28-ce1e-4542-8f4d-7b67fe881f6d.png)

Steps to reproduce the problem:
1. Search "ミシン用として用いられる" by Ctrl+F.

What went wrong? (add screenshot)
"ミシン用として用いられる" on page 5 must be hit.
If search "ミシン用として用いられ る" (add space between れ and る), it hits.

![image](https://user-images.githubusercontent.com/110510565/204416640-824b8f3f-9b7b-4ba5-856c-858d8d451689.png)

When this PDF file is opened by Adobe Reader, there is no problem.

Related issue:
[#15340](https://github.com/mozilla/pdf.js/issues/15340)







  let shiftOrigin = 0;
  let eol = 0;
  let hasDiacritics = false;
  normalized = normalized.replace(
    normalizationRegex,
    (match, p1, p2, p3, p4, p5, p6, p7, i) => {
      i -= shiftOrigin;
      if (p1) {
        
        const replacement = CHARACTERS_TO_NORMALIZE[p1];
        const jj = replacement.length;
        for (let j = 1; j < jj; j++) {
          positions.push([i - shift + j, shift - j]);
        }
        shift -= jj - 1;
        return replacement;
      }
      if (p2) {
        
        let replacement = NFKC_CHARS_TO_NORMALIZE.get(p2);
        if (!replacement) {
          replacement = p2.normalize("NFKC");
          NFKC_CHARS_TO_NORMALIZE.set(p2, replacement);
        }
        const jj = replacement.length;
        for (let j = 1; j < jj; j++) {
          positions.push([i - shift + j, shift - j]);
        }
        shift -= jj - 1;
        return replacement;
      }
      if (p3) {
        const hasTrailingDashEOL = p3.endsWith("\n");
        const len = hasTrailingDashEOL ? p3.length - 2 : p3.length;
        
        hasDiacritics = true;
        let jj = len;
        if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) {
          jj -= rawDiacriticsPositions[rawDiacriticsIndex][0];
          ++rawDiacriticsIndex;
        }
        for (let j = 1; j <= jj; j++) {
          
          
          positions.push([i - 1 - shift + j, shift - j]);
        }
        shift -= jj;
        shiftOrigin += jj;
        if (hasTrailingDashEOL) {
          
          
          i += len - 1;
          positions.push([i - shift + 1, 1 + shift]);
          shift += 1;
          shiftOrigin += 1;
          eol += 1;
          return p3.slice(0, len);
        }
        return p3;
      }
      if (p4) {
        
        
        
        
        positions.push([i - shift + 1, 1 + shift]);
        shift += 1;
        shiftOrigin += 1;
        eol += 1;
        return p4.charAt(0);
      }
      if (p5) {
        
        
        positions