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:
Ich denke, Sie möchten test
Ihre 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 RegExp
Objekt akzeptiert zwei Parameter pattern
und flags
ist 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 .
'^([0-9]\d{0,2})+$'
new RegExp('^[1-9]\\d{0,2}$')
/^[1-9]\d{0,2}$/
In Typoskript ist die Deklaration ungefähr so:
const regex : RegExp = /.+\*.+/;
Verwenden des RegExp-Konstruktors:
const regex = new RegExp('.+\\*.+');
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/