我正在尝试用逗号替换字符串中的空格。字符串看起来像这样

'1529954897.543 GET 200 173481 174274 "https://www.facebook.com/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/67.0.3391.0 Safari/537.36" "-" 1 0'

现在的问题是,当我替换所有空格时,它还会替换子字符串“Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 537.36(KHTML,如Gecko)HeadlessChrome / 67.0.3391.0 Safari / 537.36”中的空格。

有没有办法不能替换字符串中字符串的空格?

我期望的输出是这个
'1529954897.543,GET,200,173481,174274,"https://www.facebook.com/","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/67.0.3391.0 Safari/537.36","-",1,0'

最佳答案

您可以使用一些split / join逻辑仅替换“..”之外的空格:

const input = '1529954897.543 GET 200 173481 174274 "https://www.facebook.com/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/67.0.3391.0 Safari/537.36" "-" 1 0'

let result = input.split(`"`)
  .map((part, i) => i % 2 ?
    part :
    part.split(" ").join(",")
  ).join(`"`)

console.log(result)

关于javascript - 用逗号替换字符串中的空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51216940/

10-12 06:44