jQuery usuwa znak „-” z ciągu

93

Mam ciąg „-123445”. Czy można usunąć znak „-” z ciągu?

Próbowałem następujących rzeczy, ale bezskutecznie:

$mylabel.text("-123456");
$mylabel.text().replace('-', '');
Riain McAtamney
źródło

Odpowiedzi:

169
$mylabel.text( $mylabel.text().replace('-', '') );

Ponieważ text()pobiera wartość i text( "someValue" )ustawia wartość, po prostu umieszczasz jeden wewnątrz drugiego.

Byłoby to odpowiednikiem zrobienia:

var newValue = $mylabel.text().replace('-', '');
$mylabel.text( newValue );

EDYTOWAĆ:

Mam nadzieję, że dobrze zrozumiałem pytanie. Zakładam, że $mylabelodwołuje się do elementu DOM w obiekcie jQuery, a ciąg znaków znajduje się w treści elementu.

Jeśli ciąg znajduje się w innej zmiennej, która nie jest częścią DOM, prawdopodobnie będziesz chciał wywołać .replace()funkcję względem tej zmiennej przed wstawieniem jej do DOM.

Lubię to:

var someVariable = "-123456";
$mylabel.text( someVariable.replace('-', '') );

lub bardziej szczegółowa wersja:

var someVariable = "-123456";
someVariable = someVariable.replace('-', '');
$mylabel.text( someVariable );
user113716
źródło
yip $ mylabel odwołuje się do elementu DOM. Próbowałem tego i działa idealnie. Dzięki za pomoc.
Riain McAtamney
9
Na wypadek, gdybyś chciał usunąć wszystkie wystąpienia łańcucha, zamiast tylko pierwszego, możesz użyć: $ mylabel.text (). Replace (/ - / g, '');
leticia
11

Jeśli chcesz usunąć wszystko, -co możesz użyć:

.replace(new RegExp('-', 'g'),"")
Elnaz
źródło
Jeśli usuwasz kropkę / kropkę: stackoverflow.com/questions/2390789/ ...
irl_irl,
1
jego zastąpienie wszystkich znaków. duże jak :)
Hamid
8
$mylabel.text("-123456");
var string = $mylabel.text().replace('-', '');

jeśli zrobiłeś to w ten sposób, zmienna stringzachowuje się teraz"123456"

możesz też (chyba lepiej) to zrobić ...

$mylabel.text("-123456");
$mylabel.text(function(i,v){
   return v.replace('-','');
});
Reigel
źródło