2015-05-10 2 views
-2

Мне нужно извлечь строку из смешанных значений без каких-либо цифрИзвлечь строку из смешанных значений

Мне удалось извлечь номера из строки этим кодом.

var tab='#trainingArea13'; 
    var id=tab.match(/\d+/);//13 

Но мне нужно извлечь строку без номера, какое лучшее регулярное выражение добавить?

var tabClass=tab.match(/???/);// outpout have to be #trainingArea 
+0

какие выходные вы ждете? – Tushar

+0

@Tushar #trainingArea или любая строка, подобная ей, трассировка - строка без номеров –

ответ

2

Проверьте это:

var id=tab.match(/[^0-9]+/); 
  • [^0-9]: Не соответствует 0-9 т.е. любое количество
  • +: любой символ один или несколько раз
+1

Что делать, если строка была '# training.area13'? Результат будет неверным: https://regex101.com/r/zN1zZ5/2 –

+1

@stribizhev Проверить обновленный ответ – Tushar

+1

У вас все еще есть неправильное объяснение в вашем вопросе, '[.] +' Означает * 1 или более буквальных точек * , И теперь ваше предложенное регулярное выражение такое же, как мое. –

2

Правильный ответ был бы /[^0-9]+/ regex, т.к. /[^0-9.]+/ также исключает буквальную точку. Символ . в символьном классе рассматривается как литерал.

Таким образом, правильное регулярное выражение равно [^0-9]+, что означает соответствует 1 или нескольким цифрам.

var tab='#trainingArea13'; 
 
var id=tab.match(/[^0-9]+/); 
 
document.getElementById("res").innerHTML = id;
<div id="res"/>

+0

@AhmadSamilo: Поскольку оригинальный ответ был неправильным, пожалуйста, пересмотреть принятый ответ. –

Смежные вопросы