2011-07-05 3 views
1

J'ai une chaîne commeDiviser une chaîne en utilisant JavaScript expressions régulières

"Employee Name is Jason Taylor" 

je besoin d'une expression régulière pour extraire ce qui est dans le côté gauche de "is"

"Employee Name" 

Et un autre pour extraire ce est dans le côté droit de "is"

"Jason Taylor" 

Je cette

function BreakString(string) {  
    return string.replace(/((.+?)(is)).*/, '$1'); 
} 

qui retourne "Employee Name is"

Pouvez-vous s'il vous plaît aidez-moi à résoudre ce problème?

Répondre

7

Vous avez manqué un backreference:

function BreakString(string) {  
    return string.replace(/(.+?) is (.*)/, '$1 $2')); 
} 

ou sans regex

function noIs(str) { 
    var parts = str.split(" is "); 
    return parts[0] + ":" + parts[1]; 
} 
+0

pas ce qui a été demandé - il tente d'effectuer une opération de remplacement ici - une expression régulière effectue cela beaucoup plus élégamment que la séparation de la chaîne, effectuant remplacer sur chaque partie, et puis recombinant. C'est pourquoi il a posé la question. – BonyT

+0

La réponse fournie fait exactement ce qu'il était après. S'il manque quelque chose, la question n'a pas mentionné cela. – Niklas

+0

Maintenant, j'ai aussi une regex :) – mplungjan

2
([^.]+) is ([^.]+) 

semble fonctionner

+0

+1 pour les smileys japonais – mplungjan

Questions connexes