2010-08-25 18 views
45

Załóżmy, że mam test_23 i chcę usunąć test_.Jak usunąć część napisu?

Jak to zrobić?

Prefiks przed _ może się zmienić.

+0

może należy spojrzeć do [wyrażeń regularnych w JavaScript] (http://www.w3schools.com/jsref/jsref_obj_regexp.asp) – Barranka

Odpowiedz

88

Moim ulubionym sposobem osiągnięcia tego celu jest "dzielenie i popping":

var str = "test_23"; 
alert(str.split("_").pop()); 
// -> 23 

var str2 = "adifferenttest_153"; 
alert(str2.split("_").pop()); 
// -> 153 

split()
pop()

+1

+1 Podoba mi się to. – Marc

+11

Programista C we mnie skręca się na liczbę obiektów utworzonych i zniszczonych w tej prostej operacji podzielonej/pop :) Prawdopodobnie: tablica, 2 ciągi, inna tablica, inny ciąg. – Gui13

+6

@xgbi: tak, twórcy JavaScript i C mają raczej różne filozofie ;-) –

26

Zakładając, że łańcuch zawsze zaczyna się 'test_':

var str = 'test_23'; 
alert(str.substring('test_'.length)); 
+3

co, jeśli nie zaczyna się od testu? – NullVoxPopuli

+4

Zobacz odpowiedź Andy'ego E. – BoltClock

6
string = "test_1234"; 
alert(string.substring(string.indexOf('_')+1)); 

To nawet wor ks, jeśli ciąg nie ma podkreślenia. Wypróbuj go na http://jsbin.com/

+4

Ma to mniejszy narzut, ale więcej kodu niż odpowiedź Andy'ego E. Obie działają, ale ja wolę tę metodę. – palswim

14

Najłatwiej moim zdaniem jest:

var s = yourString.replace(/.*_/g,"_");