Skip to content

Error when process regex with group #1358

@luisgallineto

Description

@luisgallineto

Describe the bug
When we process a regex with a group that result of group is undefined, the library return this error: "ERROR [ExceptionsHandler] Cannot read properties of undefined (reading 'length')"
The problem occurs on the path "node_modules/@nlpjs/ner/src/extractor-regex.js".
I added some consoles on the file and the problem is on "else", specifically at "match[1].length". When process, the first position is the match and has value, the second position is the group, but, sometimes, the group can be undefined, as soon as I describe below.

if (match.length === 1) {
          result.push({
            start: match.index,
            end: regex.lastIndex - 1,
            accuracy: 1,
            sourceText: match[0],
          });
        } else {
          const index = utterance.indexOf(match[1]);
          result.push({
            start: index,
            end: index + match[1].length - 1,
            accuracy: 1,
            sourceText: match[1],
          });
        }

To Reproduce
Steps to reproduce the behavior:

  1. Add a new regex below and train.
    Exemple: /^[a-zA-ZÀ-ÿ]+ [a-zA-ZÀ-ÿ]+([ ]+[a-zA-ZÀ-ÿ]+)*$/gm

  2. Process a new message per exemple: test test

  3. The error in terminal will be:
    "ERROR [ExceptionsHandler] Cannot read properties of undefined (reading 'length')..."

Expected behavior
Process without error. I believe that a simple and working solution is to clear null properties before performing validations on the array.

Desktop (please complete the following information):

  • OS: macOS
  • node-nlp: ^4.26.1
  • Node version: v20.3.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions