Forum Discussion

dmiller's avatar
dmiller
Former Employee
8 years ago

About the Application Integration Patterns category

This category is for patterns that integrate between two or more applications.

  • I don’t think you need to use .match() - but a slight update to @siwadon’s solution might resolve multiples within the notes:

    $notes.replace(/.*(#IF:.{9}).*/g, (...args) => args[1].slice(-9))
    

    The “g” at the end of the pattern tells it to search the string globally. The slice(-9) will give only the 9 characters following the #IF. Multiple matches are separated with a \n (newline) character.

    • JensDeveloper's avatar
      JensDeveloper
      Contributor II

      Hi,
      I tested both but it still shows text after the nine characters. on the second one. Is it because thats a new line of text?

  • $notes.replace(/.*(#IF:.{9}).*/, (...args) => args[1])

    It replaces the matched string with the first capture group (#IF: and the following 9 characters).

    This will not work correctly when the input contains multiple matches. If that’s the case, please let me know. You might need to use .match() instead.

  • It’s the newline character in the string that is causing the issue. The dot notation for character matching in regex does not match newlines. After a bit of thought, we can also simplify the result by using the regex group capture syntax. Try this:

    $notes.replaceAll('\n','').replace(/.*#IF:(.{9}).*/g, '$1')
    
    • JensDeveloper's avatar
      JensDeveloper
      Contributor II

      Thank you it works now. I get it now. Still improving my regex 🙂