Hướng dẫn does javascript treat newline as space? - javascript có coi dòng mới là không gian không?

Tôi có một var chứa một danh sách lớn các từ (hàng triệu) ở định dạng này:

var words =  "
car
house
home
computer
go 
went
";

Tôi muốn tạo một chức năng sẽ thay thế dòng mới giữa mỗi từ bằng không gian.

Vì vậy, kết quả sẽ giống như thế này:

car house home computer go went

Hướng dẫn does javascript treat newline as space? - javascript có coi dòng mới là không gian không?

hỏi ngày 24 tháng 3 năm 2012 lúc 6:50Mar 24, 2012 at 6:50

Bạn có thể sử dụng hàm

car house home computer go went
0:

words = words.replace(/\n/g, " ");

Lưu ý rằng bạn cần cờ

car house home computer go went
1 trên biểu thức thông thường để thay thế để thay thế tất cả các dòng mới bằng một không gian thay vì chỉ là cái đầu tiên.

Ngoài ra, lưu ý rằng bạn phải gán kết quả của

car house home computer go went
0 cho một biến vì nó trả về một chuỗi mới. Nó không sửa đổi chuỗi hiện có. Các chuỗi trong JavaScript là bất biến (chúng không được sửa đổi trực tiếp) vì vậy mọi hoạt động sửa đổi trên một chuỗi như
car house home computer go went
3,
car house home computer go went
4,
car house home computer go went
0, v.v. ... Trả về một chuỗi mới.

let words = "a\nb\nc\nd\ne";
console.log("Before:");
console.log(words);
words = words.replace(/\n/g, " ");

console.log("After:");
console.log(words);

Đã trả lời ngày 24 tháng 3 năm 2012 lúc 6:56Mar 24, 2012 at 6:56

Hướng dẫn does javascript treat newline as space? - javascript có coi dòng mới là không gian không?

jfriend00jfriend00jfriend00

658K91 Huy hiệu vàng935 Huy hiệu bạc936 Huy hiệu Đồng91 gold badges935 silver badges936 bronze badges

1

Trong trường hợp có nhiều lần ngắt dòng (ký hiệu dòng mới) và nếu có thể có cả

car house home computer go went
6 hoặc
car house home computer go went
7 và bạn cần thay thế tất cả các dòng tiếp theo bằng một không gian,

var new_words = words.replace(/[\r\n]+/g," ");

Xem bản demo Regex

Để phù hợp với tất cả các ký tự ngắt dòng Unicode và thay thế/xóa chúng, hãy thêm

car house home computer go went
8 vào regex ở trên:all Unicode line break characters and replace/remove them, add
car house home computer go went
8 to the above regex:

/[\r\n\x0B\x0C\u0085\u2028\u2029]+/g

car house home computer go went
9 có nghĩa là:

  • words = words.replace(/\n/g, " ");
    
    0 - Bắt đầu một lớp ký tự tích cực khớp với bất kỳ char nào được xác định bên trong nó:
    • car house home computer go went
      
      6 - (
      words = words.replace(/\n/g, " ");
      
      2) -
      words = words.replace(/\n/g, " ");
      
      3 - Trở lại vận chuyển (CR)
    • car house home computer go went
      
      7 - (
      words = words.replace(/\n/g, " ");
      
      5) - ký tự nguồn cấp dữ liệu (LF)
    • words = words.replace(/\n/g, " ");
      
      6 - Tablation Line (LT)
    • words = words.replace(/\n/g, " ");
      
      7 - ​​Form Feed (FF)
    • words = words.replace(/\n/g, " ");
      
      8 - Dòng tiếp theo (NEL)
    • words = words.replace(/\n/g, " ");
      
      9 - Dòng phân tách (LS)
    • let words = "a\nb\nc\nd\ne";
      console.log("Before:");
      console.log(words);
      words = words.replace(/\n/g, " ");
      
      console.log("After:");
      console.log(words);
      0 - Bộ phân cách đoạn văn (PS)
  • let words = "a\nb\nc\nd\ne";
    console.log("Before:");
    console.log(words);
    words = words.replace(/\n/g, " ");
    
    console.log("After:");
    console.log(words);
    1 - Kết thúc lớp nhân vật
  • let words = "a\nb\nc\nd\ne";
    console.log("Before:");
    console.log(words);
    words = words.replace(/\n/g, " ");
    
    console.log("After:");
    console.log(words);
    2 - một bộ định lượng làm cho động cơ Regex khớp với nguyên tử trước đó (lớp ký tự ở đây) một hoặc nhiều lần (dòng liên tiếp được khớp)
  • let words = "a\nb\nc\nd\ne";
    console.log("Before:");
    console.log(words);
    words = words.replace(/\n/g, " ");
    
    console.log("After:");
    console.log(words);
    3 - Tìm và thay thế tất cả các lần xuất hiện trong chuỗi được cung cấp.

var words = "car\r\n\r\nhouse\nhome\rcomputer\ngo\n\nwent";
document.body.innerHTML = "
OLD:\n" + words + "
"; var new_words = words.replace(/[\r\n\x0B\x0C\u0085\u2028\u2029]+/g," "); document.body.innerHTML += "
NEW:\n" + new_words + "
";

Đã trả lời ngày 21 tháng 1 năm 2016 lúc 23:18Jan 21, 2016 at 23:18

Hướng dẫn does javascript treat newline as space? - javascript có coi dòng mới là không gian không?

Wiktor Stribiżewwiktor StribiżewWiktor Stribiżew

585K35 Huy hiệu vàng403 Huy hiệu bạc 508 Huy hiệu đồng35 gold badges403 silver badges508 bronze badges

Mã: (Đã sửa) (FIXED)

var new_words = words.replace(/\n/g," ");

Đã trả lời ngày 24 tháng 3 năm 2012 lúc 6:57Mar 24, 2012 at 6:57

Hướng dẫn does javascript treat newline as space? - javascript có coi dòng mới là không gian không?

Dr.KameleonDr.KameleonDr.Kameleon

22.3K19 Huy hiệu vàng111 Huy hiệu bạc220 Huy hiệu đồng19 gold badges111 silver badges220 bronze badges

2

Một số giải pháp đơn giản sẽ trông giống như

words.replace(/(\n)/g," ");

Đã trả lời ngày 24 tháng 3 năm 2012 lúc 6:55Mar 24, 2012 at 6:55

Hướng dẫn does javascript treat newline as space? - javascript có coi dòng mới là không gian không?

3

Không cần regex toàn cầu, sử dụng

let words = "a\nb\nc\nd\ne";
console.log("Before:");
console.log(words);
words = words.replace(/\n/g, " ");

console.log("After:");
console.log(words);
4 thay vì
let words = "a\nb\nc\nd\ne";
console.log("Before:");
console.log(words);
words = words.replace(/\n/g, " ");

console.log("After:");
console.log(words);
5

myString.replaceAll('\n', ' ')

Đã trả lời ngày 3 tháng 5 lúc 11:08May 3 at 11:08

enriquejr99enriquejr99enriquejr99

2313 Huy hiệu bạc3 Huy hiệu đồng3 silver badges3 bronze badges

1

Newline có phải là một không gian không?

Các ký tự không gian trắng tiêu chuẩn là như sau: không gian (''), thức ăn mẫu ('\ f'), new-line ('\ n'), return vận chuyển ('\ r'), tab ngang ('\ t') và tab dọc (' \ V ').Trong ngôn ngữ "C", ISSPace chỉ trả về đúng đối với các ký tự không gian trắng tiêu chuẩn.new-line ('\n'), carriage return ('\r'), horizontal tab ('\t'), and vertical tab ('\v'). In the "C" locale, isspace returns true only for the standard white-space characters.

JavaScript có nhạy cảm với các ký tự dòng mới không?

JavaScript bỏ qua các không gian, tab và Newlines xuất hiện giữa các mã thông báo trong các chương trình, ngoại trừ những thứ là một phần của chuỗi hoặc biểu thức thông thường..

Nó có nghĩa là gì \ n trong javascript?

Nhân vật Newline là \ n trong JavaScript và nhiều ngôn ngữ khác.Tất cả những gì bạn cần làm là thêm ký tự \ n bất cứ khi nào bạn yêu cầu ngắt dòng để thêm một dòng mới vào một chuỗi.newline character is \n in JavaScript and many other languages. All you need to do is add \n character whenever you require a line break to add a new line to a string.

Tại sao %20 không gian được thay thế?

Một không gian được gán số 32, là 20 trong thập lục phân.Khi bạn nhìn thấy%%20, thì nó đại diện cho một không gian trong một URL được mã hóa, ví dụ, (http://www.example.com/products%20and%20Service.html.)it represents a space in an encoded URL, for example, (http://www.example.com/products%20and%20services.html.)