Hướng dẫn how do you check if it is a string in javascript? - làm thế nào để bạn kiểm tra xem nó có phải là một chuỗi trong javascript không?

Tôi sẽ đi một con đường khác đến phần còn lại ở đây, mà cố gắng cho biết một biến là một cụ thể, hoặc một thành viên của một tập hợp cụ thể, các loại. JS được xây dựng trên Ducktyping; Nếu một cái gì đó quacks như một chuỗi, chúng ta có thể và nên sử dụng nó như một chuỗi.
JS is built on ducktyping; if something quacks like a string, we can and should use it like a string.

7 có phải là một chuỗi không? Vậy tại sao /\d/.test(7) hoạt động? {toString:()=>('hello there')} có phải là một chuỗi không? Vậy tại sao ({toString:()=>('hello there')}) + '\ngeneral kenobi!' hoạt động? Đây không phải là câu hỏi về việc làm trên, vấn đề là họ làm.
Is {toString:()=>('hello there')} a string? Then why does ({toString:()=>('hello there')}) + '\ngeneral kenobi!' work?
These aren't questions about should the above work, the point is they do.

Vì vậy, tôi đã thực hiện một chức năng duckyString() bên dưới tôi kiểm tra nhiều trường hợp không được phục vụ bởi các câu trả lời khác. Đối với mỗi mã:
Below I test many cases not catered for by other answers. For each the code:

  • Đặt một biến giống như chuỗi
  • Chạy một hoạt động chuỗi giống hệt nhau trên nó và một chuỗi thực để so sánh các đầu ra (chứng minh chúng có thể được đối xử như chuỗi)
  • Chuyển đổi giống như chuỗi thành một chuỗi thực để hiển thị cho bạn duckyString() để bình thường hóa các đầu vào cho mã mong đợi chuỗi thực
text = 'hello there';
out(text.replace(/e/g, 'E') + ' ' + 'hello there'.replace(/e/g, 'E'));
out('Is string? ' + duckyString(text) + '\t"' + duckyString(text, true) + '"\n');

text = new String('oh my');
out(text.toUpperCase() + ' ' + 'oh my'.toUpperCase());
out('Is string? ' + duckyString(text) + '\t"' + duckyString(text, true) + '"\n');

text = 368;
out((text + ' is a big number') + ' ' + ('368' + ' is a big number'));
out('Is string? ' + duckyString(text) + '\t"' + duckyString(text, true) + '"\n');

text = ['\uD83D', '\uDE07'];
out(text[1].charCodeAt(0) + ' ' + '😇'[1].charCodeAt(0));
out('Is string? ' + duckyString(text) + '\t"' + duckyString(text, true) + '"\n');

function Text() { this.math = 7; }; Text.prototype = {toString:function() { return this.math + 3 + ''; }}
text = new Text();
out(String.prototype.match.call(text, '0') + ' ' + text.toString().match('0'));
out('Is string? ' + duckyString(text) + '\t"' + duckyString(text, true) + '"\n');

Điều này nằm trong cùng một tĩnh mạch với

hEllo thErE hEllo thErE
Is string? true "hello there"

OH MY OH MY
Is string? true "oh my"

368 is a big number 368 is a big number
Is string? true "368"

56839 56839
Is string? true "😇"

0 0
Is string? true "10"
1 trái ngược với
hEllo thErE hEllo thErE
Is string? true "hello there"

OH MY OH MY
Is string? true "oh my"

368 is a big number 368 is a big number
Is string? true "368"

56839 56839
Is string? true "😇"

0 0
Is string? true "10"
2 và thử nghiệm nếu một cái gì đó giống như mảng thay vì bắt buộc một mảng thực tế. Đối tượng jQuery; họ có mảng không? Không. Họ có đủ tốt không? Vâng, bạn có thể chạy chúng thông qua các chức năng
hEllo thErE hEllo thErE
Is string? true "hello there"

OH MY OH MY
Is string? true "oh my"

368 is a big number 368 is a big number
Is string? true "368"

56839 56839
Is string? true "😇"

0 0
Is string? true "10"
3 tốt. Chính sự linh hoạt này mang lại cho JS sức mạnh của nó và thử nghiệm các chuỗi đặc biệt làm cho mã của bạn ít tương tác hơn.
jQuery objects; are they arrays? No. Are they good enough? Yeah, you can run them through
hEllo thErE hEllo thErE
Is string? true "hello there"

OH MY OH MY
Is string? true "oh my"

368 is a big number 368 is a big number
Is string? true "368"

56839 56839
Is string? true "😇"

0 0
Is string? true "10"
3 functions just fine.
It's this flexibility that gives JS its power, and testing for strings specifically makes your code less interoperable.

Đầu ra của những điều trên là:

hEllo thErE hEllo thErE
Is string? true "hello there"

OH MY OH MY
Is string? true "oh my"

368 is a big number 368 is a big number
Is string? true "368"

56839 56839
Is string? true "😇"

0 0
Is string? true "10"

Vì vậy, đó là tất cả về lý do tại sao bạn muốn biết nếu có gì đó là một chuỗi. Nếu, giống như tôi, bạn đã đến đây từ Google và muốn xem có thứ gì đó giống như chuỗi không, đây là một câu trả lời. Nó thậm chí còn không đắt tiền trừ khi bạn làm việc với các mảng char thực sự dài hoặc sâu. Điều này là do tất cả là nếu các câu lệnh, không có chức năng nào gọi như

hEllo thErE hEllo thErE
Is string? true "hello there"

OH MY OH MY
Is string? true "oh my"

368 is a big number 368 is a big number
Is string? true "368"

56839 56839
Is string? true "😇"

0 0
Is string? true "10"
4. Ngoại trừ nếu bạn đang cố gắng xem một mảng char với các đối tượng chỉ có các ký tự của ____ 15 hoặc nhiều byte, trong trường hợp đó không có cách nào khác để kiểm tra ngoại trừ để tạo chuỗi và đếm các ký tự, tương ứng
If, like me, you arrived here from google and wanted to see if something was string-like, here's an answer.
It isn't even expensive unless you're working with really long or deeply nested char arrays.
This is because it is all if statements, no function calls like
hEllo thErE hEllo thErE
Is string? true "hello there"

OH MY OH MY
Is string? true "oh my"

368 is a big number 368 is a big number
Is string? true "368"

56839 56839
Is string? true "😇"

0 0
Is string? true "10"
4.
Except if you're trying to see if a char array with objects that only have
hEllo thErE hEllo thErE
Is string? true "hello there"

OH MY OH MY
Is string? true "oh my"

368 is a big number 368 is a big number
Is string? true "368"

56839 56839
Is string? true "😇"

0 0
Is string? true "10"
5's or multi-byte characters, in which case there's no other way to check except to make the string, and count characters the bytes make up, respectively

function duckyString(string, normalise, unacceptable) {
    var type = null;
    if (!unacceptable)
        unacceptable = {};
    if (string && !unacceptable.chars && unacceptable.to == null)
        unacceptable.to = string.toString == Array.prototype.toString;

    if (string == null)
        ;

    //tests if `string` just is a string
    else if (
        !unacceptable.is &&
        (typeof string == 'string' || string instanceof String)
    )
        type = 'is';

    //tests if `string + ''` or `/./.test(string)` is valid
    else if (
        !unacceptable.to &&
        string.toString && typeof string.toString == 'function' && string.toString != Object.prototype.toString
    )
        type = 'to';

    //tests if `[...string]` is valid
    else if (
        !unacceptable.chars &&
        (string.length > 0 || string.length == 0)
    ) {
        type = 'chars';
        //for each char
        for (var index = 0; type && index < string.length; ++index) {
            var char = string[index];

            //efficiently get its length
            var length = ((duckyString(char, false, {to:true})) ?
                char :
                duckyString(char, true) || {}
            ).length;

            if (length == 1)
                continue;

            //unicode surrogate-pair support
            char = duckyString(char, true);
            length = String.prototype[Symbol && Symbol.iterator];
            if (!(length = length && length.call(char)) || length.next().done || !length.next().done)
                type = null;
        }
    }

    //return true or false if they dont want to auto-convert to real string
    if (!(type && normalise))
        //return truthy or falsy with /null if they want why it's true
        return (normalise == null) ? type != null : type;

    //perform conversion
    switch (type) {
    case 'is':
        return string;
    case 'to':
        return string.toString();
    case 'chars':
        return Array.from(string).join('');
    }
}

Bao gồm là các tùy chọn để

  • Hỏi phương pháp nào được coi là chuỗi-y
  • loại trừ các phương thức phát hiện chuỗi (ví dụ: nếu bạn không thích
    hEllo thErE hEllo thErE
    Is string? true "hello there"
    
    OH MY OH MY
    Is string? true "oh my"
    
    368 is a big number 368 is a big number
    Is string? true "368"
    
    56839 56839
    Is string? true "😇"
    
    0 0
    Is string? true "10"
    
    4)

Dưới đây là nhiều bài kiểm tra hơn vì tôi là người hoàn thành:

out('Edge-case testing')
function test(text, options) {
    var result = duckyString(text, false, options);
    text = duckyString(text, true, options);
    out(result + ' ' + ((result) ? '"' + text + '"' : text));
}
test('');
test(null);
test(undefined);
test(0);
test({length:0});
test({'0':'!', length:'1'});
test({});
test(window);
test(false);
test(['hi']);
test(['\uD83D\uDE07']);
test([['1'], 2, new String(3)]);
test([['1'], 2, new String(3)], {chars:true});
  • Tất cả các trường hợp tiêu cực dường như được tính
  • Điều này sẽ chạy trên trình duyệt> = IE8
  • Mảng char có nhiều byte được hỗ trợ trên các trình duyệt với hỗ trợ iterator chuỗi

Output:

Edge-case testing
is ""
null null
null null
to "0"
chars ""
chars "!"
null null
chars ""
to "false"
null null
chars "😇"
chars "123"
to "1,2,3"

Làm thế nào để bạn kiểm tra xem một chuỗi có trong một JavaScript văn bản không?

Phương thức bao gồm () trả về true nếu một chuỗi chứa một chuỗi được chỉ định.Nếu không thì nó trả về sai.Phương pháp bao gồm () là trường hợp nhạy cảm.. Otherwise it returns false . The includes() method is case sensitive.

Làm thế nào để bạn biết nếu một phần tử là một chuỗi?

Phương pháp số 1: Sử dụng isInstance (x, str) Phương pháp này có thể được sử dụng để kiểm tra xem bất kỳ biến nào có phải là kiểu dữ liệu cụ thể hay không.Bằng cách đưa ra đối số thứ hai như là Str Str, chúng ta có thể kiểm tra xem biến chúng ta vượt qua có phải là một chuỗi hay không.Using isinstance(x, str) This method can be used to test whether any variable is a particular datatype. By giving the second argument as “str”, we can check if the variable we pass is a string or not.

$ {} Trong JavaScript này là gì?

Với các mẫu theo nghĩa chữ, một biểu thức có thể được nhúng trong một trình giữ chỗ.Một trình giữ chỗ được đại diện bởi $ {}, với bất cứ điều gì trong các dấu ngoặc xoăn được coi là JavaScript và bất cứ thứ gì bên ngoài các giá trị được coi là một chuỗi: Phương thức const = 'Nội suy' const DynamicsTring = `Chuỗi này đang sử dụng $ {Phương thức}.A placeholder is represented by ${} , with anything within the curly brackets treated as JavaScript and anything outside the brackets treated as a string: const method = 'interpolation' const dynamicString = `This string is using ${method}.

Làm thế nào để bạn kiểm tra xem ký tự là một chuỗi hoặc số trong JavaScript?

isNumeric = function () {return! isnan (this.valueOf () * 1);};Nó sẽ kiểm tra các ký tự đơn, cũng như toàn bộ chuỗi để xem chúng có số không. isNaN(this. valueOf() * 1); }; It will check single characters, as well as whole strings to see if they are numeric.