94 votes

RegExp en TypeScript

Comment puis-je implémenter Regexp en TypeScript ?

Mon exemple :

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

97voto

LightStyle Points 4126

Je pense que vous voulez test votre RegExp en TypeScript, donc vous devez faire comme ceci :

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

Vous devriez lire Référence MDN - RegExp le RegExp accepte deux paramètres pattern y flags qui est nullable (peut être omis/indéfini). Pour tester votre regex, vous devez utiliser la fonction .test() en ne passant pas la chaîne que vous voulez tester dans la déclaration de votre RegExp !

Pourquoi test + "" ? Parce que alert() dans TS accepte une chaîne de caractères comme argument, il est préférable de l'écrire de cette façon. Vous pouvez essayer le code complet aquí .

48voto

sebas2day Points 1653

Vous pouvez le faire :

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

13voto

Navin Adhe Points 131

En script, la déclaration est quelque chose comme ceci :

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

en utilisant le constructeur RegExp :

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

6voto

Ari Points 891
const regex = /myRegexp/

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

En Notation littérale des regex est généralement utilisé pour créer de nouvelles instances de RegExp

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

Comme d'autres l'ont suggéré, vous pouvez également utiliser la fonction new RegExp('myRegex') constructeur.
Mais vous devrez être particulièrement prudent avec les évasions :

regex: 12\d45
matches: 12345
                           Extra excape because it is part of a string
                            v
const regex = new RegExp('12\\d45')
const equalRegex = /12\d45/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X