Javascript Regex Modification de la gestion de la nouvelle ligne dans les navigateurs

J'ai créé une zone de texte HTML avec la possibilité d'ajouter "[" et "]" au début et à la fin de tout texte qui a été entré dans ce domaine.

Mon problème est que lorsque je saisis certaines données multilignes dans la zone de texte, le regex est traité différemment dans ff et c.-à-d.

Contribution:

Iam learning regex 

Résultats escomptés: (je l'ai dans FF)

 [Iam] [learning] [regex] 

Sortie dans IE:

 [Iam ][] [learning ][] [regex] 

Le code Regex est ici:

 (textareaIDelement.value).replace(/(^)(.*)(\n{0,})($)/gm, "[" + "$2" +"]"); 

J'ai ajouté le (\n{0,}) dans le regex pour faire correspondre les nouvelles lignes … mais il n'a aucun effet …

Merci

Dans IE, le séparateur de ligne dans la propriété de value un textarea est \r\n . Dans tous les autres navigateurs principaux, il est \n . Une solution simple serait de normaliser les séparateurs de ligne dans \n premier. J'ai également simplifié la regex:

 textareaIDelement.value.replace(/\r\n/g, "\n").replace(/^(.*)\n*$/gm, "[$1]"); 

Je suppose que Firefox utilise un seul 0x0A ( \n ) comme séparateur de ligne, alors que IE utilise le séparateur Windows 0x0D 0x0A ( \r\n ).

En fonction de la sémantique exacte de la bibliothèque regex, il est probablement compatible avec les deux caractères WIndows indépendamment en tant que séparateurs de ligne, donc il détecte la fin de la ligne suivie d'une ligne de 0 caractères.

(Ce n'est pas une réponse réelle en soi, car je ne connais pas très bien exactement comment JS traite les métacaractères regex, mais j'espère qu'il vous indiquera dans la bonne direction.)