RegExp in TypeScript


73

Wie kann ich Regexp in TypeScript implementieren?

Mein Beispiel:

var trigger = "2"
var regex = new RegExp('^[1-9]\d{0,2}$', trigger); // where I have exception in Chrome console

Antworten:


78

Ich denke, Sie möchten testIhre RegExp in TypeScript, also müssen Sie Folgendes tun:

var trigger = "2",
    regexp = new RegExp('^[1-9]\d{0,2}$'),
    test = regexp.test(trigger);
alert(test + ""); // will display true

Sie sollten MDN Reference - RegExp lesen , das RegExpObjekt akzeptiert zwei Parameter patternund flagsist nullwertfähig (kann weggelassen / undefiniert werden). Um Ihre Regex zu testen, müssen Sie die verwenden.test() Methode verwenden und dürfen die zu testende Zeichenfolge nicht in der Deklaration Ihres RegExp übergeben!

Warum test + ""? Da alert()in TS eine Zeichenfolge als Argument akzeptiert wird, ist es besser, sie so zu schreiben. Den vollständigen Code können Sie hier ausprobieren .


wenn var trigger = "10", regexp = new RegExp ('^ [1-9] \ d {0,2} $'), test = regexp.test (trigger); Alarm (Test + ""); Alarm zurück falsch, es ist nicht richtig
zrabzdn

Ersetzen Sie Ihr aktuelles Regex-Muster durch:'^([0-9]\d{0,2})+$'
Niccolò Campolungo

6
Da Sie das RegExp-Objekt aus einer Zeichenfolge erstellen, müssen Sie auch den Backslash new RegExp('^[1-9]\\d{0,2}$')/^[1-9]\d{0,2}$/
umgehen

39

Sie können einfach tun:

var regex = /^[1-9]\d{0,2}$/g
regex.test('2') // outputs true

7

In Typoskript ist die Deklaration ungefähr so:

const regex : RegExp = /.+\*.+/;

Verwenden des RegExp-Konstruktors:

const regex = new RegExp('.+\\*.+');

2

const regex = /myRegexp/

console.log('Hello myRegexp!'.replace(regex, 'World')) // = Hello World!

Die Regex-Literalnotation wird häufig zum Erstellen neuer Instanzen von verwendetRegExp

     regex needs no additional escaping
      v
/    regex   /   gm
^            ^   ^
start      end   optional modifiers

Wie andere vorgeschlagen haben, können Sie auch den new RegExp('myRegex')Konstruktor verwenden.
Aber Sie müssen besonders vorsichtig sein, wenn Sie entkommen:

regex: 12\d45
matches: 12345

const regex = new RegExp('12\\d45')
const equalRegex = /12\d45/
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.