2010-09-14 6 views
1

Je veux vérifier une chaîne et si elle n'a pas <br /> à partir alors je ne veux pas faire quelque chose
par exemple mysqtinr = 23435-acs
comme vous pouvez le voir sans <br /> à partir mais si la chaîne a la suivante alors Je veux l'analyser suranalyse syntaxique en javascript

myString = <br /> some text goes here <b> Some other things </b>: just more test <b> http://website/index.php </b> on line <b> 43 </b> <br /> 1234-acd

Je veux analyser tout ce que après la dernière <br />

ho w je peux faire grâce

+1

Je me suis évanoui en utilisant JavaScript une fois. : P – alex

Répondre

1
var myregexp = /<br\s*\/>((?:(?!<br\s*\/>).)*)$/; 
var match = myregexp.exec(subject); 
if (match != null) { 
    result = match[1]; 
} else { 
    result = ""; 
} 

Explication:

<br\s*/>  # match <br /> with optional space 
(    # capture the following: 
(?:   # repeat the following, but don't capture (because the outer parens do so already) 
    (?!<br\s*/>) # assert that it's impossible to match <br /> 
    .    # if so, match any character 
)*    # do this as many times as necessary... 
)    # (end of capturing group) 
$    # ...until the end of the string. 

Nous essayons donc d'abord de faire correspondre <br/> ou <br /> etc. Si cela échoue, le match échoue. Si ce n'est pas le cas, nous capturons tous les caractères suivants jusqu'à la fin de la chaîne sauf si il est possible de faire correspondre un autre <br/> en cours de route. Cela garantit que nous sommes en effet à partir de la dernière <br/>. Le résultat sera en référence arrière nr. 1 (qui peut être vide s'il n'y a rien après la dernière <br/>).

2
var index = myString.lastIndexOf("<br />"); 
if(index > 0) 
    myString = myString.substring(index + "<br />".length); 
+0

Cela ne fonctionne pas comme le tag «
» et «
» est valide. Voir http://jsfiddle.net/y38QH/ – Robert

+0

Que voulez-vous dire par valide? il veut la chaîne après la dernière balise 'br' –

+0

Je veux dire que si vous essayez d'analyser une chaîne qui a'
'votre méthode ne le trouvera pas. – Robert