2016-09-24 3 views
0

Как написать регулярное выражение, которое принимает только слова или буквы и разделяет их на ,?Regex принимает только имена переменных

Я попытался array = input.replace(/ /g, '').split(','), но тогда h-e,a<y станет ['h-e','a<y'] я хочу, чтобы принимать только переменные, так что я думаю h-e,a<y должен стать ['he','ay'].

Будет ли что-то вроде

array = input.replace(/[\s|^\w]/g, '').split(',') 
+0

Что вы подразумеваете под словами «слова» и «буквы»? Ваше название относится к «именам переменных» - вы имеете в виду имена переменных JavaScript? Они могут включать знаки доллара и подчеркивания, которые не являются «буквами». Вы говорите о «принятии», но описание вашей проблемы, похоже, связано с «преобразованием». Прошу пояснить, спасибо. –

+0

Прошу прощения. Я имею в виду только слова (в том числе 1-значные слова, что я имел в виду под письмами) – Jamgreen

ответ

0

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

array = input.replace(/[-><?.:;]*/ig, '').split(',') 

Вы заменить все символы, внутри [ ].

+0

Но я не знаю точно, какие символы могут использовать данные. Я просто хочу убедиться, что получаю слова (в том числе 1-значные слова) – Jamgreen

+0

Я думал, вам нужно будет найти шаблон для имен переменных, потому что у вас может быть такая ситуация: my-var-other-number .. что может привести в номере my-var - other-number или my-var-other. Итак, если у вас есть промежутки между переменными, то это будет идеально, если нет, я думаю, вы должны думать иначе, потому что это невозможно. Например, найти во всей переменной файла для переменной. так что если вы найдете мой-var 4 раза, значит, это имя, не так ли? – damianfabian

0

Split, а затем удалить символы не допускаются:

input.split(,).map(fix) 

где

function fix(s) { 
    return s.replace(/[^\w$]/g, ''); 
} 

Другой подход, чтобы захватить символы, которые вы хотите, вместо того, чтобы выбросить те, которые вы не:

function fix(s) { 
    return s.match(/[\w$]/g).join(''); 
} 

Собственно, это не совсем так, поскольку имена переменных JavaScript также могут n содержать символы Unicode, такие как Σ. Кроме того, это не будет исправлять ведущие числовые символы, с которыми имена переменных JavaScript не могут начинаться.

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