2016-03-17 3 views
2

Привет, я новичок в jQuery, но у меня есть простой скрипт, который должен стирать целые числа из строки, но кажется, что они разделяют только первые 2 цифры?Regex не работает так, как это должно быть с .replace()

Идеи?

var strValue = "5321 Test"; 
 

 
var regex = /([0-9])/; 
 

 
strValue = strValue.replace(regex,''); 
 

 
alert(strValue);

ответ

5

Вы можете использовать глобальное регулярное выражение модификатор:

/[0-9]/g 

g: глобальный. Все совпадения (не возвращаются в первом матче).

Или вы могли бы добавить + в своем регулярном выражении, чтобы предназначаться все целые числа не только первым:

/([0-9]+)/; 

0-9: Один символ в диапазоне от 0 до 9.

+: Между одним и неограниченным временем, как можно больше раз.

Или также используя \d+.

d: соответствует цифре [0-9].

Надеюсь, это поможет.


var strValue = "5321 Test"; 
 

 
var regex = /([0-9])/g; 
 

 
strValue = strValue.replace(regex,''); 
 

 
alert(strValue);

+6

Или использовать глобальный модификатор регулярных выражений: '/ [0-9]/G' – Phylogenesis

+0

Или просто' \ D + ', если вы хотите, чтобы держать его коротким: P – SpencerD

+1

Добавление плюс за ним соответствует только первая группа цифр. Поэтому, если у вас будет «123 test 123», это станет «тестом 123», – Ewoud

3

Вы должны добавить г после регулярных выражений, что означает, что он должен заменить все вхождения, а не только первый. Так что ваш код будет:

var strValue = "5321 Test"; 
var regex = /([0-9])/g; 
strValue = strValue.replace(regex,''); 
alert(strValue); 
Смежные вопросы