Создание кратких заголовков из заголовков?

Я имею в распоряжении все для создания кратких заголовков из заголовков, но существует одна проблема. Мой RegEx заменяет пробелы дефисами. Но когда пользователь вводит "Привет  там" (несколько пробелов), краткий заголовок заканчивается как "Привет-----там". Когда действительно это должно быть "Привет там".

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

Или есть ли более легкий способ сделать это?

6
задан Daniel DiPaolo 7 June 2010 в 21:11
поделиться

5 ответов

Просто сопоставьте несколько пробельных символов.

s/\s+/-/g
5
ответ дан 8 December 2019 в 14:40
поделиться

Проще всего сложить повторяющиеся - в один - в качестве последнего шага:

replace /-{2,}/ by "-"

Или, если вы хотите, чтобы это воздействовать на пространства, вместо этого складывать пространства (очевидно, перед другими шагами)

2
ответ дан 8 December 2019 в 14:40
поделиться

Возможно, вы захотите сначала обрезать строку, чтобы избежать ведущих и последующих дефисов.

function hyphenSpace(s){
    s= (s.trim)? s.trim(): s.replace(/^\s+|\s+$/g,'');
    return s.split(/\s+/).join('-');
}
0
ответ дан 8 December 2019 в 14:40
поделиться

Я бы заменил [\ s] + на '-' и , затем заменил [^ \ w -] с ''

0
ответ дан 8 December 2019 в 14:40
поделиться

Я использую это:

yourslug.replace(/\W+/g, '-')

Это заменяет все вхождения одного или нескольких не буквенно-цифровых символов одним тире.

7
ответ дан 8 December 2019 в 14:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: