স্থানগুলি ড্যাশগুলির সাথে প্রতিস্থাপন করুন এবং সমস্ত অক্ষর লোয়ার-কেস করুন


247

JQuery বা ভ্যানিলা জাভাস্ক্রিপ্ট ব্যবহার করে আমার একটি স্ট্রিং পুনরায় ফর্ম্যাট করতে হবে

ধরা যাক আমাদের আছে "Sonic Free Games"।

আমি এটিকে রূপান্তর করতে চাই "sonic-free-games"।

সুতরাং সাদা স্থানগুলি ড্যাশ দ্বারা প্রতিস্থাপিত করা উচিত এবং সমস্ত অক্ষর ছোট অক্ষরে রূপান্তরিত হবে।

এই কোন সাহায্য দয়া করে?

উত্তর:


549

কেবল স্ট্রিং replaceএবং toLowerCaseপদ্ধতিগুলি ব্যবহার করুন , উদাহরণস্বরূপ:

var str = "Sonic Free Games";
str = str.replace(/\s+/g, '-').toLowerCase();
console.log(str); // "sonic-free-games"

gপতাকাটির দিকে লক্ষ্য করুন RegExp, এটি বিশ্বব্যাপী স্ট্রিংয়ের মধ্যে প্রতিস্থাপন তৈরি করবে , যদি এটি ব্যবহার না করা হয় তবে কেবলমাত্র প্রথম ঘটনাটি প্রতিস্থাপন করা হবে এবং এটিও RegExpএক বা একাধিক সাদা-স্থানের অক্ষরের সাথে মিলবে।


52
আমি ব্যবহারগুলির সাথে একটি ভিন্নতা নিয়ে এসেছি \ ডাব্লু যা কোনও ননালফ্যানুমিক অক্ষরের প্রতিনিধিত্ব করে। এটি 'এএন্ডপি মুদি' এর মতো কোনও কিছুর জন্য দরকারী যা 'এপি-মুদি' হয়ে উঠবে। str.replace(/\W+/g, '-').toLowerCase();
— অ্যাডাম ওয়াসেলনুক

1
Regexp অংশ উদ্ধৃত না মন, অর্থাত্ replace(/\s+/g, ..এবং না replace('/\s+/f', .. (অ্যাপস্ট্রফিগুলি ছাড়া)
— Attila Fulop

আমি যদি স্ট্রিংয়ের শুরু এবং শেষের জায়গাগুলি সরাতে চাই?
— রোমেল ইন্ডেমান

@ রোমিল ইন্ডেমন আজকাল আপনি এই String.prototype.trimপদ্ধতিটি ব্যবহার করতে পারেন :str.trim().replace(/\s+/g, '-').toLowerCase()
— সিএমএস

ধন্যবাদ, সুন্দর। এখন আমার আর
— ডি ডি

34

উপরের উত্তরটিকে কিছুটা বিভ্রান্ত বলে মনে করা যেতে পারে। স্ট্রিং পদ্ধতিগুলি আসল অবজেক্টটি পরিবর্তন করছে না । তারা নতুন বস্তু ফিরে । এটাই হবে:

var str = "Sonic Free Games";
str = str.replace(/\s+/g, '-').toLowerCase(); //new object assigned to var str

10
আমি মনে করি এটা জরুরী যে এই গ্রহণযোগ্য উত্তরটি এই ধারণাকে সংহত করার জন্য সম্পাদনা করা হয়েছিল
— Degen

31

আপনি ব্যবহার করতে পারেন splitএবং join:

"Sonic Free Games".split(" ").join("-").toLowerCase(); //sonic-free-games

পার্শ্ব-কেস সম্পর্কে সচেতন হন, উদাহরণস্বরূপ যেখানে কিছু জায়গা শুরুতে রয়েছে, সেগুলি প্রতিস্থাপন করা হবে না
— Bonjour123

1

@ সিএমএসের উত্তরটি ঠিক আছে, তবে আমি নোট করতে চাই যে আপনি এই প্যাকেজটি ব্যবহার করতে পারেন: https://github.com/sindresorhus/slugify , যা এটি আপনার পক্ষে করে এবং অনেকগুলি প্রান্তের মামলাগুলি (যেমন, জার্মান উমলাউটস, ভিয়েতনামী, আরবী , রাশিয়ান, রোমানিয়ান, তুর্কি, ইত্যাদি)।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.