Hướng dẫn what is carriage return in javascript - ký tự xuống dòng trong javascript là gì

Câu trả lời của Nelek là câu trả lời hay nhất được đăng cho đến nay, nhưng nó dựa vào việc thiết lập giá trị CSS: không gian trắng: pre, có thể không mong muốn.

Tôi muốn đưa ra một giải pháp khác, cố gắng giải quyết câu hỏi thực sự nên được hỏi ở đây:

"Làm thế nào để chèn văn bản không tin cậy vào một phần tử DOM?"

Nếu bạn tin tưởng văn bản, tại sao không sử dụng Internhtml?

domElement.innerHTML = trustedText.replace(/\r/g, '').replace(/\n/g, '
');

nên đủ cho tất cả các trường hợp hợp lý.

Nếu bạn quyết định bạn nên sử dụng .TextContent thay vì .innerhtml, điều đó có nghĩa là bạn không tin vào văn bản mà bạn sắp chèn, phải không? Đây là một mối quan tâm hợp lý.

Ví dụ: bạn có một biểu mẫu mà người dùng có thể tạo một bài đăng và sau khi đăng nó, văn bản bài đăng được lưu trữ trong cơ sở dữ liệu của bạn và sau đó được thêm vào các trang bất cứ khi nào người dùng khác truy cập trang có liên quan.

Nếu bạn sử dụng InnerHTML ở đây, bạn sẽ có một vi phạm bảo mật. tức là, người dùng có thể đăng một cái gì đó như

[script]alert(1);[/script]

.

Điều này sẽ không kích hoạt một cảnh báo nếu bạn sử dụng InternalHTML, nhưng nó sẽ cho bạn ý tưởng tại sao việc sử dụng bên trong có thể có vấn đề. Một người dùng thông minh hơn sẽ đăng

[img src="invalid_src" onerror="alert(1)"]

sẽ kích hoạt cảnh báo cho mọi người dùng khác truy cập trang. Bây giờ chúng tôi có một vấn đề. Một người dùng thậm chí thông minh hơn sẽ đặt hiển thị: không có kiểu IMG đó và làm cho nó đăng cookie của người dùng hiện tại lên một trang web miền chéo. Xin chúc mừng, tất cả các chi tiết đăng nhập người dùng của bạn hiện được phơi bày trên Internet.

Vì vậy, điều quan trọng cần hiểu là, sử dụng Internhtml không sai, thật hoàn hảo nếu bạn chỉ sử dụng nó để xây dựng các mẫu chỉ sử dụng mã nhà phát triển đáng tin cậy của riêng bạn. Câu hỏi thực sự nên là "làm cách nào để nối thêm văn bản người dùng không đáng tin cậy có dòng mới vào tài liệu HTML của tôi".

Điều này đặt ra một câu hỏi: chúng ta sử dụng chiến lược nào cho Newlines? Chúng ta có sử dụng các yếu tố [BR] không? [p] s hoặc [div] s?

Đây là một chức năng ngắn giải quyết vấn đề:

function insertUntrustedText(domElement, untrustedText, newlineStrategy) {
    domElement.innerHTML = '';
    var lines = untrustedText.replace(/\r/g, '').split('\n');
    var linesLength = lines.length;
    if(newlineStrategy === 'br') {
        for(var i = 0; i < linesLength; i++) {
            domElement.appendChild(document.createTextNode(lines[i]));
            domElement.appendChild(document.createElement('br'));
        }
    }
    else {
        for(var i = 0; i < linesLength; i++) {
            var lineElement = document.createElement(newlineStrategy);
            lineElement.textContent = lines[i];
            domElement.appendChild(lineElement);
        }
    }
}

Về cơ bản, bạn có thể ném cái này ở đâu đó trong tệp Common_Functions.js của mình và sau đó chỉ cần bắn và quên bất cứ khi nào bạn cần nối thêm bất kỳ người dùng/API/etc-> văn bản không được tin tưởng (tức là không được viết bởi nhóm phát triển của bạn) Trang HTML của bạn.

Ví dụ sử dụng:

insertUntrustedText(document.querySelector('.myTextParent'), 'line1\nline2\r\nline3', 'br');

Tham số newlineStargety chỉ chấp nhận các thẻ phần tử DOM hợp lệ, vì vậy nếu bạn muốn [br] newlines, hãy vượt qua 'br', nếu bạn muốn mỗi dòng trong một phần tử [p], hãy vượt qua 'p', v.v.

Ngôn ngữ lập trình Java được định hướng đối tượng và cung cấp các ứng dụng cho một số nền tảng. Mã được biên dịch của dòng mới JavaScript được viết trên hầu hết các nền tảng HĐH (bytecode), bao gồm Windows, Linux và Mac OS, khi một lập trình viên phát triển ứng dụng Java. Java kế thừa một phần lớn của cú pháp C và C ++ của nó.

Vào giữa những năm 1990, Java được tạo ra với sự hợp tác của Mike Sheridan và Patrick Naughton của James A. Gosling, một cựu nhà khoa học máy tính của Sun Microsystems.

Thêm một dòng mới trong JavaScript

Tùy thuộc vào kết quả đạt được, có hai cách tiếp cận để thêm một dòng mới vào JavaScript. Bài học này cho thấy làm thế nào cả bảng điều khiển JavaScript và DOM có thể được thêm vào dòng mới.

Một dòng đầu ra bảng điều khiển mới sẽ được thêm

Nếu bạn muốn thêm một dòng mới vào bảng điều khiển dòng mới & nbsp; JavaScript trong khi in một vài từ, có thể sử dụng dấu hiệu \ n cho dòng mới.

Thao tác chuỗi dòng mới của JavaScript là một trong những điều dễ học, nhưng khó thành thạo. Một khi bạn tin rằng bạn đã nắm bắt được nó, một thay đổi ngữ cảnh có thể gây sốc những gì bạn đã học được cho đến thời điểm đó.

Nếu bạn gặp khó khăn khi thêm một dòng mới vào một chuỗi, hãy đọc tiếp.

Làm cách nào để thêm một dòng chuỗi mới?

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.

Example:

Đặt str = "Xin chào thế giới! \ nthis là chuỗi của tôi";

console.log(str);

Đầu ra

New_line_in_JavaScript_1.

Dòng đầu ra DOM mới được thêm vào

Bạn phải thay đổi DOM và thêm phần tử HTML để hiển thị văn bản bên dưới, khi bạn phải tạo dòng mới cho một trang web.

Phá vỡ dòng khác nhau giữa các nền tảng trong chuỗi, mặc dù các nền tảng thường xuyên nhất là:

  • Windows: Mang lại trở lại \ r \ n theo sau là một ký tự trên dòng mới.
  • Linux: \ n một ký tự trên một dòng mới.
  • Mac cũ hơn: Một nhân vật được trả lại bởi một cỗ xe.

Nhiệm vụ dòng mới của JavaScript này được thực hiện bằng hai phương thức. Một phương pháp là truy cập từng ký tự một bằng cách sử dụng mạch lập trình thông thường. Một cái khác sử dụng các cụm từ thông thường.

Phương pháp khâu: Đây là kỹ thuật cơ bản để giải quyết vấn đề này. Kiểm tra từng ký tự chuỗi và cắt nó để loại bỏ các ký tự khỏi đường mới và vận chuyển trở lại.

Đầu dòng (EOL), ngắt dòng, nguồn cấp dữ liệu dòng, ngắt đường hoặc ký tự trả về vận chuyển là một ký tự điều khiển, là phần cuối của một dòng văn bản và ký tự sau nên bắt đầu theo một dòng khác. Đó là \ r \ n trên hệ thống Windows và đó là Linux trên \ n.

Chúng tôi có thể sử dụng System.LineSeparator () trong Java để có được ký tự dòng mới tùy thuộc vào nền tảng.

Các mã ASCII tương ứng 13 (CR) và 10 (lf) được biểu thị là \ r và \ n. Chúng cách nhau hai dòng, nhưng hệ điều hành sử dụng chúng khác nhau. Cả hai đều khác nhau.

Một chuỗi hai ký tự được sử dụng để bắt đầu một dòng mới trên Windows, theo sau là LF, Cr. Mặt khác, chỉ có LF được sử dụng trên các nền tảng giống như UNIX.

Chúng ta cần nhận thức được các ký tự phá vỡ dòng mà chúng ta sử dụng trong khi tạo các chương trình Java, vì các ứng dụng sẽ tương thích với hệ điều hành.

System.LineSeparator là lựa chọn an toàn và tương thích nhất (). Trong phương pháp này, chúng tôi không cần phải xem xét hệ điều hành.

Example 

lớp công khai endlinecharactermain {

& nbsp;

    {

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; //

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

        System.out.println(str1);

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; // nên được sử dụng trong Windows

& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

        System.out.println(str2);

    }

}

Đầu ra

New_line_in_JavaScript_2

Dòng đầu ra DOM mới được thêm vào

Conclusion 

Bạn phải thay đổi DOM và thêm phần tử HTML để hiển thị văn bản bên dưới, khi bạn phải tạo dòng mới cho một trang web.

Có nghĩa là gì khi trở về vận chuyển?

Trở lại vận chuyển, đôi khi được gọi là Hộp mực trở lại và thường được rút ngắn thành CR, hoặc trả lại, là một đặc tính hoặc cơ chế điều khiển được sử dụng để đặt lại vị trí của thiết bị về đầu của một dòng văn bản.a control character or mechanism used to reset a device's position to the beginning of a line of text.

\ R Trở lại vận chuyển trong Java là gì?

'\ r' là đại diện của nhân vật đặc biệt Cr (trả về vận chuyển), nó di chuyển con trỏ sang đầu dòng.'\ n' (nguồn cấp dữ liệu) di chuyển con trỏ sang dòng tiếp theo.Trên Windows, cả hai đều được kết hợp dưới dạng \ r \ n để chỉ ra một kết thúc của dòng (tức là, di chuyển con trỏ sang đầu của dòng tiếp theo).moves the cursor to the beginning of the line. '\n'(line feed) moves the cursor to the next line . On windows both are combined as \r\n to indicate an end of line (ie, move the cursor to the beginning of the next line).

\ R có nghĩa là gì trong html?

Các metacharacter \ r phù hợp với các ký tự vận chuyển.carriage return characters.

Khóa trả về vận chuyển là gì?

Trả về vận chuyển là thuật ngữ cho kết quả của việc nhấn phím "enter" hoặc "return" trên bàn phím khi tạo văn bản.Kết quả nói là một sáng tạo của một dòng văn bản mới.Thuật ngữ vận chuyển đến từ cơ chế vận chuyển thực tế bên trong một máy đánh chữ."enter" or "return" key on a keyboard when creating text. The said result is a creation of a new line of text. The term carriage return came from the actual carriage mechanism inside a typewriter.