2014-02-20 5 views
0

У меня есть строка, как это показано ниже:JavaScript строки манипуляции

var stOrig= "ROAM-Synergy-111-222-LLX" ; 

Там может быть любой нет. «буквенных» терминов перед численными значениями 111-222 .. Возможны или не могут быть числовые значения. Строка также может быть такой: "ROAM-Synergy-LCD-ROAM".

если есть числовые значения, то я использую этот

var myval = st.match(/^\D+(?=-)/)[0]; 

получить только алфавитные термины перед числовыми значениями. Прекрасно работает.

Но если предположим, что строка не содержит каких-либо числовых значений, то мое регулярное выражение возвращает один меньше термин т.е. Say оригинальная строка: (. Без каких-либо цифр в нем) "ROAM-Synergy-LCD-ROAM" Теперь, если это использование выше выражения рег ... то он вернется только "ROAM-Synergy-LCD" .. поэтому сначала мне нужно проверить любые числовые значения в исходной строке .. и если строка содержит числовые значения, то я использую выше reg exp ... но, пожалуйста, предложите Если строка не содержит числовые значения то какое выражение выражения использовать ..

+1

... и именно поэтому я написал свой комментарий [к вашему предыдущему вопросу] (http://stackoverflow.com/q/21822958/20670) ... :) –

+0

да я согласен :) .. на самом деле произошли некоторые изменения кода, которые могут привести к этой ситуации ... Спасибо – vicky

ответ

1

Использование

var myval = st.match(/^\D+(?=-|$)/)[0]; 

$ соответствует в конце строки.

См. Его live on regex101.com.

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