Лучший способ заменить запятую точками во входном тексте на весь мой проект [дубликат]

Да, вы можете использовать simple_html_dom для этой цели. Однако я довольно много работал с simple_html_dom, особенно для веб-лома и обнаружил, что он слишком уязвим. Он выполняет основную работу, но я не буду рекомендовать ее в любом случае.

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

Просьба проверить эту ссылку: выскабливание-сайты-с-завиток

15
задан Tushar 12 December 2015 в 09:59
поделиться

2 ответа

Используйте replace с функцией обратного вызова, которая заменит , на . и . на ,. Возвращаемое значение из функции будет использоваться для замены согласованного значения.

var mystring = "1,23,45,448.00";

mystring = mystring.replace(/[,.]/g, function (m) {
    // m is the match found in the string
    // If `,` is matched return `.`, if `.` matched return `,`
    return m === ',' ? '.' : ',';
});

console.log(mystring);
document.write(mystring);

Regex: регулярное выражение [,.] будет соответствовать любому запятой или десятичной точкой.

String#replace() с обратным вызовом функции получит совпадение как параметр (m), который является либо ,, либо . и значение, возвращаемое функцией, используется для замены соответствия.

Итак, когда первый , из строки сопоставляется

m = ',';

И в функции return m === ',' ? '.' : ',';

эквивалентен

if (m === ',') {
    return '.';
} else {
    return ',';
}

Итак, в основном это заменяет , на . и . на , в строке.

16
ответ дан Tushar 25 August 2018 в 22:38
поделиться

Ничего плохого в подходе Тушара, но вот еще одна идея:

myString
  .replace(/,/g , "__COMMA__") // Replace `,` by some unique string
  .replace(/\./g, ',')         // Replace `.` by `,`
  .replace(/__COMMA__/g, '.'); // Replace the string by `.`
4
ответ дан user 25 August 2018 в 22:38
поделиться
Другие вопросы по тегам:

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