Удалить все точки, кроме первой, из строки - PullRequest
16 голосов
/ 15 ноября 2011

С учетом строки

'1.2.3.4.5'

Я хотел бы получить этот вывод

'1.2345'

(Если в строке нет точек, строка должна быть возвращена без изменений.)

Я написал это

function process( input ) {
    var index = input.indexOf( '.' );

    if ( index > -1 ) {
        input = input.substr( 0, index + 1 ) + 
                input.slice( index ).replace( /\./g, '' );
    }

    return input;
}

Демонстрационная версия: http://jsfiddle.net/EDTNK/1/

Это работает, но я надеялся на более элегантное решение ...

Ответы [ 11 ]

0 голосов
/ 15 ноября 2011

Не уверен, что должно произойти, если "." это первый символ, я бы проверил на -1 в indexOf, также, если вы используете substr один раз, можно использовать его дважды.

if ( index != -1 ) {
    input = input.substr( 0, index + 1 ) + input.substr(index + 1).replace( /\./g, '' );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...