2015-10-01 4 views
1

Я пытаюсь сделать, если есть более одного - в моей строке его заменить на один - например.Заменить несколько символов - регулярное выражение

--- заменить на -

или test---demo заменить test-demo

моя функция

function strconvert(str) { 
    var ret = str; 

    ret = ret.replace(/ø/g, 'oe'); 
    ret = ret.replace(/Ø/g, 'OE'); 
    ret = ret.replace(/å/g, 'aa'); 
    ret = ret.replace(/Å/g, 'AA'); 
    ret = ret.replace(/æ/g, 'ae'); 
    ret = ret.replace(/Æ/g, 'AE'); 
    ret = ret.replace(/\_/g, '-'); 

    ret = ret.replace(/[^a-zA-Z0-9\/-]/ig,'-').replace(/_+/ig,'-').toLowerCase(); 

    return ret; 
} 

ответ

3

Вы можете использовать replace(/-+/g, '-');

ret = ret.replace(/-+/g, '-'); 

Update: Вы можете объединить .replace(/_+/g,'-').replace(/-+/g,'-') для .replace(/[_-]+/g,'-')

+0

@ParisNakitaKejser: рад помочь –

+0

Теперь мне нужно только обрезать на - в начале и в конце моей строки: P вы можете помочь здесь? – ParisNakitaKejser

+0

@ParisNakitaKejser с помощью замены с регулярным выражением вы можете сделать '.replace (/^\ s + | \ s + $/g, '');' или вы можете использовать 'trim()' –

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