জাভাস্ক্রিপ্টে একটি স্ট্রিংয়ের ভিতরে সাদা স্থানগুলি সরান


108

আমি জাভাস্ক্রিপ্ট ট্রিম সম্পর্কে এই প্রশ্নটি পড়েছি , একটি রেজেক্স উত্তর দিয়ে।

তারপর আমি মুছে ফেলার জন্য প্রস্তুত আশা ভেতরের হ্যালো এবং বিশ্ব মধ্যে স্থান।

function myFunction() {
    alert("Hello World ".trim());
}

সম্পাদিত

আমি কেন এটি প্রত্যাশা করলাম !?

আজেবাজে কথা! স্পষ্টতই ট্রিমটি অভ্যন্তরীণ স্পেসগুলি সরিয়ে দেয় না !, কেবল অগ্রণী এবং পেছনের দিকগুলি, এইভাবে ট্রিম কীভাবে কাজ করে, তবে এটি ছিল খুব ভুল প্রশ্ন, আমার ক্ষমা।


10
ট্রিম একটি স্ট্রিংয়ের শুরু এবং শেষ থেকে সাদা স্থান সরিয়ে দেয়
মানসে

4
ট্রিম একটি স্ট্রিংয়ের আগে এবং পরে হোয়াইটস্পেস সরিয়ে দেয় । Hello Worldইতিমধ্যে "ছাঁটা হয় '।
রকেট Hazmat

@ লাইমলাইটগুলি "হ্যালো ওয়ার্ল্ড" এর পরিবর্তে "হ্যালো ওয়ার্ল্ড"
দেখানোর জন্য

4
@ অদম্য: এটি "ছাঁটাই" নয়, এটি একটি ভিন্ন সমস্যা।
রকেট হাজমত

উত্তর:


243

স্থান-অক্ষর অপসারণ ব্যবহারের জন্য

"hello world".replace(/\s/g, "");

সমস্ত সাদা স্থানের জন্য নীচের মন্তব্যে রকেটের পরামর্শটি ব্যবহার করুন!


142
.replace(/ /g, '')একাধিক স্থান থাকলে আপনি ব্যবহার করতে পারেন।
রকেট হাজমত

@ রকেট, এটি একেবারে সত্য, এখনও উত্তর আপডেট হয়েছে! ধন্যবাদ! :)
হেনরিক অ্যান্ডারসন

47
@Juhana: আপনি অন্য হোয়াইটস্পেস সরাতে চান, তাহলে একটি করুন: .replace(/\s/g, '')
রকেট হাজমত

12
@ রকেটহাজমাত হ্যাঁ! সঠিক উত্তর! যদিও এটি সামান্য আরও দক্ষ হতে পারে: স্ট্রিয়রপ্লেস (/ \ গুলি + / জি, '')
জ্যাকোকনর

4
@ পিচিয়া নাটারাজন \sস্পেস, ট্যাব এবং নতুন লাইনের সাথে মিলবে ।
রকেট হাজমত

8

সম্ভবত আপনি গৃহীত উত্তরে সমাধানটি প্রয়োগ করতে ভুলে গেছেন বলে সম্ভবত । এই কোডটিই trim()কাজ করে।

হালনাগাদ

এই উত্তরটি কেবল পুরানো ব্রাউজারগুলিতে প্রযোজ্য। নতুন ব্রাউজারগুলি স্পষ্টতই trim()দেশীয়ভাবে সমর্থন করে।


4
অগত্যা, কিছু ব্রাউজার এটি অন্তর্নির্মিত করে আছে :
রকেট হাজমাত

4
এটি বর্তমানে বেশিরভাগ আধুনিক ব্রাউজারে উপস্থিত রয়েছে -> kangax.github.com/es5-compat-table
মানসে

2

তুমি ব্যবহার করতে পার

"Hello World ".replace(/\s+/g, '');

trim()কেবল স্ট্রিংয়ের উপরের স্থানগুলি সরিয়ে দেয় (চেইনে প্রথম এবং শেষ)। এই ক্ষেত্রে এই রেজিপ্যাক্স দ্রুততর কারণ আপনি একই সাথে এক বা একাধিক স্পেস সরিয়ে ফেলতে পারেন।

আপনি যদি প্রতিস্থাপন খালি স্ট্রিংটিকে '$' এ পরিবর্তন করেন তবে পার্থক্যটি আরও স্পষ্ট হয়ে ওঠে:

var string= '  Q  W E   R TY ';
console.log(string.replace(/\s/g, '$'));  // $$Q$$W$E$$$R$TY$
console.log(string.replace(/\s+/g, '#')); // #Q#W#E#R#TY#

পারফরম্যান্স তুলনা - /\s+/gদ্রুত। এখানে দেখুন: http://jsperf.com/s-vs-s


বর্তমানে গৃহীত উত্তর একই জিনিস আছে। অনুগ্রহ করে কিছু প্রাসঙ্গিক পরীক্ষা উপস্থাপন করুন যা ন্যানোসেকেন্ডের চেয়ে বেশি যে কোনও উত্তর দ্বারা এটির চেয়ে দ্রুত indic
হেরেটিক বানর

পুনঃটুইট করেছেন
অ্যারানজি

1

আপনি নিয়মিত অভিব্যক্তি সহ স্ট্রিংস প্রতিস্থাপন পদ্ধতিটি ব্যবহার করতে পারেন ।

"Hello World ".replace(/ /g, "");

প্রতিস্থাপন () পদ্ধতিটি প্রতিস্থাপনের দ্বারা প্রতিস্থাপিত কোনও প্যাটার্নের কিছু বা সমস্ত মিলের সাথে একটি নতুন স্ট্রিং দেয়। প্যাটার্নটি স্ট্রিং বা একটি রেজিপ্লেক্স হতে পারে

RegExp

  • / / - নিয়মিত অভিব্যক্তি মেলে ফাঁকা স্থান

  • g - বিশ্ব পতাকা; প্রথম ম্যাচের পরে থামার চেয়ে সমস্ত ম্যাচ সন্ধান করুন

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