Я нахожу, что много функций высокого уровня отсутствуют в большинстве известных библиотек JavaScript, таких как jQuery, YUI... и т.д. Беря обработку строк в качестве примера, startsWith, endsWith, содержит, lTrim, rTrim, обрезка, isNullOrEmpty... и т.д. Они функционируют, на самом деле очень общие.
Я хотел бы знать, существует ли там библиотека JavaScript / плагин библиотеки JavaScript, которая заполняет эти разрывы (включая, но не ограничиваясь, обработкой строк)?
Было бы замечательно, если библиотека не переопределяет прототип.
Взгляните на underscore.js (к сожалению, никаких манипуляций со строками, но множество других полезных вещей).
Большинство этих строковых функций доступны с использованием других методов, связанных со строковым объектом, например
var myString = 'hello world';
myString.indexOf('hello') == 0; //same as startsWith('hello');
Вы можете обернуть эти функции в другие функции, если хотите. Я думаю, что добавление прототипов к строковому объекту было бы подходящим вариантом, и любые библиотеки, которые вы найдете, вероятно, все равно пойдут по этому пути.
Библиотека ms ajax core содержит все эти строковые методы, а также методы даты и т. Д., По сути, это отважная попытка перенести .net на js.
Вам не нужно загружать весь стек MS Ajax js, только файл ядра.
Все это легко реализовать с помощью оберток, если вы не хотите расширять прототип.
var StringWrapper = (function(){
var wrapper = {
string: null,
trim: function(){
return this.string.replace(/^\s+|\s+$/g, "");
},
lTrim: function(){
}
};
return function(string){
wrapper.string = string;
return wrapper;
};
})();
StringWrapper(" aaaa bbbb ").trim(); /// "aaaa bbbb"
Функции создаются только один раз, поэтому это довольно эффективно. Но использование оболочки над вспомогательным объектом влечет за собой один дополнительный вызов функции.