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


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.