Да, вы можете использовать simple_html_dom для этой цели. Однако я довольно много работал с simple_html_dom, особенно для веб-лома и обнаружил, что он слишком уязвим. Он выполняет основную работу, но я не буду рекомендовать ее в любом случае.
Я никогда не использовал завиток для этой цели, но то, что я узнал, заключается в том, что завиток может сделать работу намного эффективнее и намного более твердый.
Просьба проверить эту ссылку: выскабливание-сайты-с-завиток
Используйте 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 ',';
}
Итак, в основном это заменяет ,
на .
и .
на ,
в строке.
Ничего плохого в подходе Тушара, но вот еще одна идея:
myString
.replace(/,/g , "__COMMA__") // Replace `,` by some unique string
.replace(/\./g, ',') // Replace `.` by `,`
.replace(/__COMMA__/g, '.'); // Replace the string by `.`