2012-03-07 3 views
2

Est-il possible de faire une sous-chaîne vers l'arrière. Je veux dire que j'ai une chaîne comme:JavaScript Substring vers l'arrière

Test_Test_T_630 
or 
TestTest_Test_T_6305 
or 
TestTestTest_Test_T_63050 

Serait-il possible de la tailler juste en conséquence:

Test_Test_T 
or 
TestTest_Test_T 
or 
TestTestTest_Test_T 

Je sais que vous ne pouviez pas utiliser la sous-chaîne à rechercher _T comme ce serait couper trop tôt, alors pourriez-vous le faire en arrière pour chercher le dernier trait de soulignement?

Répondre

2
yourstring.slice(0, yourstring.lastIndexOf('_T')+2) 

Vous pouvez également utiliser des expressions régulières.

+0

Merci qui fonctionne parfaitement. – MMKD

2

Basé sur une chaîne de la forme

var s = "TestTestTest_Test_T_ZZZ"; 

... vous avez différentes options pour rogner à partir du dernier trait de soulignement partir. Le plus simple et probablement le meilleur est:

s.slice(0, s.lastIndexOf("_")); 

A plus inefficace un:

s.split("_").slice(0, -1).join("_"); 

Une courte basée regex-one:

s.replace(/_[^_]*$/, ""); 
+0

J'aime l'expression rationnelle que vous avez illustrée dans le dernier exemple! – MMKD