Как проверить, является ли строка & ldquo; StartsWith & rdquo; другая строка?

С jQuery:

$.post("test.php", { json_string:JSON.stringify({name:"John", time:"2pm"}) });

Без jQuery:

var xmlhttp = new XMLHttpRequest();   // new HttpRequest instance 
xmlhttp.open("POST", "/json-handler");
xmlhttp.setRequestHeader("Content-Type", "application/json");
xmlhttp.send(JSON.stringify({name:"John Rambo", time:"2pm"}));
1624
задан Luca Kiebel 8 September 2018 в 20:54
поделиться

3 ответа

Можно использовать ECMAScript 6's String.prototype.startsWith() метод, но это еще не поддерживается во всех браузерах . Вы захотите использовать контейнер/полизаливку для добавления его на браузерах, которые не поддерживают его. При создании реализации, которая выполняет , являются немного сложными все подробности, размеченные в спецификации . Если Вы хотите верный контейнер, используйте также:

, Как только Вы шиммировали метод (или если Вы только поддерживаете браузеры и механизмы JavaScript, которые уже имеют его), можно использовать его как это:

"Hello World!".startsWith("He"); // true

var haystack = "Hello world";
var prefix = 'orl';
haystack.startsWith(prefix); // false
1741
ответ дан Nick 9 September 2018 в 06:54
поделиться
data.substring(0, input.length) === input
587
ответ дан gblazex 9 September 2018 в 06:54
поделиться

Вот небольшое улучшение решения CMS:

if(!String.prototype.startsWith){
    String.prototype.startsWith = function (str) {
        return !this.indexOf(str);
    }
}

"Hello World!".startsWith("He"); // true

 var data = "Hello world";
 var input = 'He';
 data.startsWith(input); // true

Проверка, существует ли уже функция, на случай, если будущий браузер реализует ее в собственном коде или если она реализована другой библиотекой. Например, библиотека прототипов уже реализует эту функцию.

Использование ! немного быстрее и лаконичнее, чем === 0 , хотя и не так читабельно.

39
ответ дан 22 November 2019 в 20:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: