এখানে আমার উট কেস ফাংশনের সংস্করণ রয়েছে:
var camelCase = (function () {
var DEFAULT_REGEX = /[-_]+(.)?/g;
function toUpper(match, group1) {
return group1 ? group1.toUpperCase() : '';
}
return function (str, delimiters) {
return str.replace(delimiters ? new RegExp('[' + delimiters + ']+(.)?', 'g') : DEFAULT_REGEX, toUpper);
};
})();
এটি নিম্নলিখিত সমস্ত প্রান্তের কেস পরিচালনা করে:
- ডিফল্টরূপে আন্ডারস্কোর এবং হাইফেন উভয়েরই যত্ন নেয় (দ্বিতীয় প্যারামিটারের সাথে কনফিগারযোগ্য)
- ইউনিকোড অক্ষরযুক্ত স্ট্রিং
- হাইফেন বা আন্ডারস্কোর দিয়ে শেষ হওয়া স্ট্রিং
- ধারাবাহিক হাইফেন বা আন্ডারস্কোরযুক্ত স্ট্রিং
লাইভ টেস্টগুলির লিঙ্কটি এখানে: http://jsfiddle.net/avKzf/2/
পরীক্ষার ফলাফল এখানে:
- ইনপুট: "ab-cd-ef", ফলাফল: "abCdEf"
- ইনপুট: "ab-cd-ef-", ফলাফল: "abCdEf"
- ইনপুট: "ab-cd-ef--", ফলাফল: "abCdEf"
- ইনপুট: "ab-cd - ef--", ফলাফল: "abCdEf"
- ইনপুট: "--ab-cd - ef--", ফলাফল: "AbCdEf"
- ইনপুট: "--ab-cd -__- ef--", ফলাফল: "AbCdEf"
লক্ষ্য করুন যে ডিলিমিটারগুলির সাথে শুরু হওয়া স্ট্রিংগুলির শুরুতে একটি বড় হাতের অক্ষরের ফলাফল হবে। যদি আপনি এটি প্রত্যাশা না করেন তবে আপনি সর্বদা lcfirst ব্যবহার করতে পারেন। আপনার যদি প্রয়োজন হয় তবে এখানে আমার এলসিফার্স্ট:
function lcfirst(str) {
return str && str.charAt(0).toLowerCase() + str.substring(1);
}