Hướng dẫn how do you input a character in javascript? - làm thế nào để bạn nhập một ký tự trong javascript?

Ví dụ

Nhận ký tự đầu tiên trong một chuỗi:first character in a string:

hãy để văn bản = "Hello World"; Đặt chữ cái = text.charat (0);
let letter = text.charAt(0);

Hãy tự mình thử »

Nhận ký tự thứ hai trong một chuỗi:second character in a string:

hãy để văn bản = "Hello World"; Đặt chữ cái = text.charat (1);
let letter = text.charAt(1);

Hãy tự mình thử »

Nhận ký tự thứ hai trong một chuỗi:last character in a string:

hãy để văn bản = "Hello World"; Đặt chữ cái = text.charat (1);
let letter = text.charAt(text.length-1);

Hãy tự mình thử »

Nhận ký tự thứ hai trong một chuỗi:


hãy để văn bản = "Hello World"; Đặt chữ cái = text.charat (1);

Nhận ký tự cuối cùng trong một chuỗi:

hãy để văn bản = "Hello World"; Đặt chữ cái = text.charat (text.length-1);


Thêm ví dụ dưới đây.

Định nghĩa và cách sử dụng

Phương thức charAt() trả về ký tự tại một chỉ mục được chỉ định (vị trí) trong một chuỗi.Chỉ số của ký tự đầu tiên là 0, 1 thứ hai, ...
Cú phápThông số
The index (position) of the character.
Default = 0.

Tham số

Sự mô tảChỉ số của ký tự đầu tiên là 0, 1 thứ hai, ...
Cú phápThông số
Empty string ("") if the index is out of range.


Tham số

Sự mô tả

mục lục
let letter = text.charAt(15);

Hãy tự mình thử »

Nhận ký tự thứ hai trong một chuỗi:

hãy để văn bản = "Hello World"; Đặt chữ cái = text.charat (1);
let letter = text.charAt();

Nhận ký tự cuối cùng trong một chuỗi:

hãy để văn bản = "Hello World"; Đặt chữ cái = text.charat (text.length-1);

Thêm ví dụ dưới đây.
let letter = text.charAt(3.14);

Hãy tự mình thử »


Định nghĩa và cách sử dụng

Phương thức charAt() trả về ký tự tại một chỉ mục được chỉ định (vị trí) trong một chuỗi.

Chỉ số của ký tự đầu tiên là 0, 1 thứ hai, ...

Cú phápThông sốTham sốSự mô tảmục lụcTùy chọn. Chỉ mục (vị trí) của ký tự.Default = 0.
Giá trị trả vềGiá trị trả vềGiá trị trả vềGiá trị trả vềGiá trị trả vềGiá trị trả về


Tôi biết đây có vẻ là một mục tiêu khá dễ dàng. Tôi có một input[type=text] và tôi muốn phát hiện (các) ký tự được thêm vào trong đó. Cách bình thường là:

$selector.keypress(function(e) {
    //do sth here
    var newchar = String.fromCharCode(e.which);
});

Nhưng phương pháp trên không hoạt động đúng cho một số trình duyệt trên các thiết bị Android. Gõ bàn phím ảo Android sẽ không bắn keypress.browsers on android devices. Typing the android virtual keyboard will not fire the keypress.

Sau đó, tôi thấy phương pháp sau là tốt hơn:

$selector.on('input', function(e){
    //do sth here
});

Nó hoạt động tốt cho các thiết bị Android, và cũng có thể phát hiện cut/paste.

Bây giờ câu hỏi là, có cách nào để biết (các) ký tự được thêm vào input không? Tôi có cần thực hiện so sánh chuỗi phức tạp trong quá trình nhập mỗi lần, tức là so sánh chuỗi trước và chuỗi mới trong hộp nhập không? Tôi đã nói rằng nó phức tạp vì bạn có thể không phải lúc nào cũng gõ (các) char ở cuối, bạn có thể chèn một số char ở giữa chuỗi trước. Hãy suy nghĩ về điều này, chuỗi trước trong hộp đầu vào là "ABC", chuỗi mới sau khi dán là "ABCXABC", làm thế nào chúng ta có thể biết chuỗi được dán mới là "ABCX" hoặc "XABC"?"abc", the new string after pasting is "abcxabc", how can we know the new pasted string is "abcx", or "xabc"?

Phương pháp từ Keypress khá đơn giản:

String.fromCharCode(e.which);

Vì vậy, có cách tương tự để làm điều này bằng phương pháp

$selector.on('input', function(e){
    //do sth here
});
0?


Sau khi đọc câu trả lời của Yeldar Kurmangaliyev, tôi đã đưa ra vấn đề này trong một thời gian và thấy điều này thực sự phức tạp hơn so với mong đợi trước đây của tôi. Điểm mấu chốt ở đây là có một cách để có được vị trí con trỏ bằng cách gọi:

$selector.on('input', function(e){
    //do sth here
});
1.

Như Yeldar Kurmangaliyev đã đề cập, câu trả lời của anh không thể bao gồm tình huống:

Nó không hoạt động là khi bạn chọn văn bản và dán một văn bản khác bằng cách thay thế văn bản gốc.

Dựa trên câu trả lời của anh ấy, tôi đã sửa đổi chức năng

$selector.on('input', function(e){
    //do sth here
});
2 như sau:

    function getInputedString(prev, curr, selEnd) {
        if (selEnd === 0) {
          return "";
        }
        //note: substr(start,length) and substring(start,end) are different
        var preLen = prev.length;
        var curLen = curr.length;
        var index = (preLen > selEnd) ? selEnd : preLen;
        var subStrPrev;
        var subStrCurr;
        for(i=index; i > 0; i--){
            subStrPrev = prev.substr(0, i);
            subStrCurr = curr.substr(0, i);
            if (subStrCurr === subStrPrev) {
                var subInterval = selEnd - i;
                var interval = curLen - preLen;
                if (interval>subInterval) {
                    return curr.substring(i, selEnd+(interval-subInterval));
                }
                else{
                    return curr.substring(i, selEnd);
                }

            }
        }

        return curr.substring(0, selEnd);
    }

Mã này khá tự giải thích. Ý tưởng cốt lõi là, bất kể (các) nhân vật nào đã được thêm vào (loại hoặc dán), nội dung mới phải được kết thúc ở vị trí con trỏ.

Ngoài ra còn có một vấn đề cho mã của tôi, ví dụ: Khi trước là

$selector.on('input', function(e){
    //do sth here
});
3, bạn chọn tất cả và dán
$selector.on('input', function(e){
    //do sth here
});
4, giá trị trả về từ mã của tôi sẽ là
$selector.on('input', function(e){
    //do sth here
});
5. Trên thực tế, tôi nghĩ rằng nó hợp lý, bởi vì trong kịch bản của tôi, tôi nghĩ điều này giống nhau với việc xóa
$selector.on('input', function(e){
    //do sth here
});
4 khỏi
$selector.on('input', function(e){
    //do sth here
});
3 trước đó.

Ngoài ra, tôi đã thay đổi sự kiện ____10 thành

$selector.on('input', function(e){
    //do sth here
});
9, lý do là, đối với một số trình duyệt Android,
String.fromCharCode(e.which);
0 sẽ không hoạt động theo cùng một cách, ví dụ, văn bản trước đó là
String.fromCharCode(e.which);
1, bây giờ tôi dán
String.fromCharCode(e.which);
2 và chuỗi hiện tại sẽ là
String.fromCharCode(e.which);
3, nhưng Tùy thuộc vào các trình duyệt khác nhau,
String.fromCharCode(e.which);
0 bên trong
$selector.on('input', function(e){
    //do sth here
});
0 có thể là 3 hoặc 5. tức là một số trình duyệt sẽ báo cáo vị trí con trỏ trước khi thêm đầu vào, một số sẽ báo cáo vị trí con trỏ sau khi thêm đầu vào.3, or 5. i.e. some browsers will report the cursor position before adding the input, some will report the cursor position after adding the input.

Cuối cùng, tôi tìm thấy

$selector.on('input', function(e){
    //do sth here
});
9 đã làm việc theo cùng một cách cho tất cả các trình duyệt tôi đã thử nghiệm.

Toàn bộ bản demo như sau:

Bản demo trên jsfiddle

Làm việc trên khả năng tương thích trình duyệt chéo luôn luôn khó khăn, đặc biệt là khi bạn cần xem xét các màn hình cảm ứng. Hy vọng điều này có thể giúp ai đó, và vui chơi.

Làm thế nào để bạn nhập các ký tự đặc biệt vào JavaScript?

JavaScript cho phép chúng tôi thêm các ký tự đặc biệt vào chuỗi văn bản bằng dấu hiệu Backslash (\). Chúng ta có thể thêm các loại ký tự đặc biệt khác nhau, bao gồm trích dẫn đơn, trích dẫn kép, ampersand, dòng mới, tab, backspace, form Feed, v.v., sử dụng dấu gạch chéo ngược ngay trước các ký tự.using a backslash (\) sign. We can add different types of special characters, including the single quote, double quote, ampersand, new line, tab, backspace, form feed, etc., using the backslash just before the characters.

Làm thế nào để bạn xác định một ký tự trong JavaScript?

Một định danh JavaScript thường bắt đầu bằng một chữ cái, dấu gạch dưới (_) hoặc dấu hiệu đô la ($).Các ký tự tiếp theo cũng có thể là các chữ số (0 - 9).Bởi vì JavaScript nhạy cảm trường hợp, các chữ cái bao gồm các ký tự từ A đến Z (chữ hoa) cũng như A đến Z (chữ thường).. Subsequent characters can also be digits ( 0 – 9 ). Because JavaScript is case sensitive, letters include the characters A through Z (uppercase) as well as a through z (lowercase).

Làm thế nào để bạn hiển thị một ký tự trong JavaScript?

giới thiệu);var i = 0;// Hiển thị văn bản, ký tự theo ký tự var display = setInterval (function () {div.textContent += txt [i]; if (i == (txt.length-1))1}, 100);} thiết bị đầu cuối ('blueth', 0);Sau khi nó hiển thị ghi chú [0].var display = setInterval(function() { div. textContent += txt[i]; if (i == (txt. length-1)) { clearInterval(display); } i += 1 }, 100); } terminal('blueTh', 0); After it displayed notes[0].

Làm thế nào để bạn nhập một chuỗi vào JavaScript?

Trong JavaScript, có ba cách để viết một chuỗi - chúng có thể được viết bên trong các trích dẫn đơn (''), trích dẫn kép ("") hoặc backticks (``).Loại báo giá được sử dụng phải khớp ở cả hai bên, tuy nhiên có thể cả ba kiểu có thể được sử dụng trong cùng một kịch bản.they can be written inside single quotes ( ' ' ), double quotes ( " " ), or backticks ( ` ` ). The type of quote used must match on both sides, however it is possible that all three styles can be used throughout the same script.