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
zrabzdn
quelle

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 .

Niccolò Campolungo
quelle
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
sebas2day
quelle
7

In Typoskript ist die Deklaration ungefähr so:

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

Verwenden des RegExp-Konstruktors:

const regex = new RegExp('.+\\*.+');
Navin Adhe
quelle
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/
Ari
quelle