একক স্থানের সাথে একাধিক স্পেস প্রতিস্থাপন করতে রেজেক্স


508

একটি স্ট্রিং দেওয়া হয়েছে:

"কুকুরটির একটি দীর্ঘ লেজ আছে এবং এটি লাল!"

কেবল এক স্পেস সর্বাধিক স্থানে স্পেস রাখতে কী ধরণের jQuery বা জাভাস্ক্রিপ্ট যাদু ব্যবহার করা যেতে পারে?

গোল:

"কুকুরটির একটি দীর্ঘ লেজ আছে এবং এটি লাল!"

4
আপনি কি হোয়াইটস্পেসি ট্যাব অক্ষরের সাথে মিল রাখতে চান?
ক্রিস কৃষক

@ ক্রিস, হ্যাঁ দয়া করে, দুর্দান্ত প্রশ্ন .... এই সমস্ত বিভিন্ন উত্তর দিয়ে, কোনটি সবচেয়ে কার্যকর সমাধান কী তা কীভাবে জানা উচিত?
অ্যানপ্রেন্টিস

2
নীচের প্রত্যেকেই সঠিক, তবে এটি সর্বাধিক অপটিমাইজড রেজেক্স: str.replace(/ +(?= )/g,'');আপনি যা কিছু করবেন না তার প্রতিস্থাপন করছেন না।
ইভান ক্যারল

2
পারফরম্যান্সে কোনও লক্ষণীয় পার্থক্য হবে না। আপনি সর্বদা এটি প্রোফাইল করতে পারতেন, তবে আমার সন্দেহ হয় এটির পক্ষে এটি কার্যকর হবে। আমি ক্লিয়ারস্টের জন্য যেতে হবে।
ড্রয়মন

@ ইভানক্রোল: সত্য নয় - অন্তত ফায়ারফক্সে। সংস্করণটি উল্লেখযোগ্যভাবে ধীর গতিতে চলে। আমার উত্তরে (নীচে) প্রোফাইলিং ফলাফল দেখুন।
এডওয়ার্ড লোপার

উত্তর:


934

আপনি যে ট্যাবগুলি, নিউলাইনগুলি ইত্যাদি আচ্ছাদন করতে চান তা \s\s+দিয়ে কেবল এইগুলি প্রতিস্থাপন করুন ' ':

string = string.replace(/\s\s+/g, ' ');

আপনি যদি সত্যিই কেবল ফাঁকা স্থানগুলি (এবং এইভাবে ট্যাবগুলি, নিউলাইনগুলি না ইত্যাদি) কভার করতে চান তবে এটি করুন:

string = string.replace(/  +/g, ' ');

4
আপনাকে রেজেক্সে 'জি' পতাকা যুক্ত করতে হবে।
রাফায়েল

6
যখন ট্যাব বা নতুন লাইনের পরিবর্তে ফাঁকা করার দরকার হয় তখন এটি কাজ করে না। রাইট? / \ s + / কাজ করবে।
ফ্যাবিয়ান

3
এটি কোনও ফাংশন হিসাবে আপনার পক্ষে ভাল হতে পারেfunction removeExtraSpaces(string){ return string.replace(/\s{2,}/g, ' ');}
ম্যাথ চিলার

5
@Ethan: জাতীয় যে জন্য একটি builtin ফাংশন আছে: trim()। এটি রেগেক্সের চেয়ে দ্রুত। আপনি ঠিক করতে পারেন string.trim().replace(/\s\s+/g, ' ');বা string.replace(/\s\s+/g, ' ').trim();
বালুসসি

4
/\s\s+/gএবং /\s{2,}/gএকে অপরের সাথে সংলগ্ন কমপক্ষে দুটি না থাকলে সাদা বর্ণের অক্ষরের সাথে মেলে না, যেমন \ t \ t মিলবে তবে একক \ t এর সাথে মেলে না। string.replace(/\s+/g, ' ')সমস্ত একক এবং একাধিক সাদা স্পেসি অক্ষর সাবস্ট্রিংয়ের সাথে মিলবে এবং একক স্থানের সাথে প্রতিস্থাপন করবে।
remyActual

159

যেহেতু আপনি অভিনয়তে আগ্রহী বলে মনে হচ্ছে, তাই আমি ফায়ারব্যাগ দিয়ে এগুলিকে প্রোফাইল দিয়েছি। আমি প্রাপ্ত ফলাফল এখানে:

str.replace( /  +/g, ' ' )       ->  380ms
str.replace( /\s\s+/g, ' ' )     ->  390ms
str.replace( / {2,}/g, ' ' )     ->  470ms
str.replace( / +/g, ' ' )        ->  790ms
str.replace( / +(?= )/g, ' ')    -> 3250ms

এটি ফায়ারফক্সে রয়েছে, 100 কে স্ট্রিং প্রতিস্থাপন চলছে।

আমি আপনাকে ফায়ারব্যাগের সাথে নিজের প্রোফাইল পরীক্ষা করতে উত্সাহিত করব, যদি আপনি মনে করেন পারফরম্যান্স কোনও সমস্যা। মানুষ তাদের প্রোগ্রামের বাধা কোথায় অবস্থিত তা ভবিষ্যদ্বাণী করতে কুখ্যাতভাবে খারাপ।

(এছাড়াও, উল্লেখ্য যে আইই 8 এর বিকাশকারী সরঞ্জামদণ্ডে একটি প্রোফাইলার অন্তর্নির্মিত রয়েছে - এটি IE এর মধ্যে পারফরম্যান্স কেমন তা যাচাই করা উপযুক্ত)


5
jsperf.com/removing- মাল্টিপল-স্পেসস এগিয়ে যান এবং জেএসপিফার! শেষ পদ্ধতি; ( / +(?= )/g, ' ');"Foo Bar Baz".replace(/ +(?= )/g, ' ');"Foo Bar Baz"
আইই

বিডব্লিউ 1 এবং 2 য় লাইনের মধ্যে কীভাবে আরও বিস্তৃত রয়েছে
বিবেক পান্ডে

@ বিবেকপান্দে - আমি ধারণা করেছি যে এটি দ্বিতীয় কারণটি কেবল একটি স্থানের সাথে ডাবল স্পেসের সংস্থানগুলি প্রতিস্থাপন করছে, যখন প্রথম স্থানটি কোনও স্থানের সাথে স্থান করে দিচ্ছে। অনুসন্ধানের সময় এই সময়টি সংরক্ষণ করা হয়েছে বা আসল প্রতিস্থাপন কিনা তা আমার জানা নেই।
ম্যালোরিক

এটি প্রাথমিক এবং পিছনের শ্বেত স্থানগুলিকে সরিয়ে দেয় না। তার জন্য এই উত্তরটি দেখুন
ইথান

গতি হ্রাস করে অর্ডার সম্পাদিত। বিবেক এবং ম্যালোরিকের মন্তব্যগুলি 380 এমএস এবং 790 এমএস সহ লাইনগুলি উল্লেখ করে।
স্কিপি লে গ্র্যান্ড গৌরু

43
var str = "The      dog        has a long tail,      and it is RED!";
str = str.replace(/ {2,}/g,' ');

সম্পাদনা: আপনি যদি সমস্ত ধরণের সাদা স্থানের অক্ষরগুলি প্রতিস্থাপন করতে চান তবে সবচেয়ে কার্যকর উপায়টি হ'ল:

str = str.replace(/\s{2,}/g,' ');

মজার বিষয় হল আপনার পরীক্ষার স্ট্রিংটিতে এর মধ্যে দুটি স্পেসও নেই।
জোশ স্টোডোলা

আমি বুঝতে পেরেছি যে আপনি ইতিমধ্যে যা নিয়ে এসেছেন তা ইতিমধ্যে আপনার কাছে রয়েছে, +1 :)
মধ্যপন্থী ওমুরিলিভ

2
কিছু কারণে এটি কাজ করছে না ... প্রচুর "& nbsp;" দেখানো হচ্ছে ... সম্ভবত সি কেইডিটোরের কারণে ...
অ্যানপ্রেন্টিস

কে জ্যাকিউরির পাঠ্য () প্রেরণ করছিল mess স্থির - সব ধন্যবাদ!
অ্যানপ্রেন্টিস

16

এটি একটি সমাধান, যদিও এটি সমস্ত স্থানের অক্ষরকে লক্ষ্য করবে :

"The      dog        has a long tail,      and it is RED!".replace(/\s\s+/g, ' ')

"The dog has a long tail, and it is RED!"

সম্পাদনা : এটি সম্ভবত আরও ভাল যেহেতু এটি 1 বা আরও বেশি স্পেসের পরে কোনও স্থানকে লক্ষ্য করে:

"The      dog        has a long tail,      and it is RED!".replace(/  +/g, ' ')

"The dog has a long tail, and it is RED!"

বিকল্প পদ্ধতি:

"The      dog        has a long tail,      and it is RED!".replace(/ {2,}/g, ' ')
"The dog has a long tail, and it is RED!"

আমি /\s+/নিজেই ব্যবহার করি নি যেহেতু এটি একাধিকবার 1 অক্ষর স্প্যান করে এমন স্থানগুলিকে প্রতিস্থাপন করে এবং কম দক্ষ হতে পারে কারণ এটি প্রয়োজনের চেয়ে বেশি লক্ষ্যবস্তু করে।

বাগগুলি থাকলে আমি এগুলির এত গভীরভাবে কোনও এলএমকে পরীক্ষা করিনি।

এছাড়াও, আপনি যদি স্ট্রিং প্রতিস্থাপন করতে চলেছেন তবে ভেরিয়েবল / সম্পত্তিটিকে তার নিজস্ব প্রতিস্থাপনের জন্য পুনরায় বরাদ্দ করতে মনে রাখবেন, যেমন:

var string = 'foo'
string = string.replace('foo', '')

JQuery.prototype.text ব্যবহার:

var el = $('span:eq(0)');
el.text( el.text().replace(/\d+/, '') )

1
প্রথমটি সম্পূর্ণরূপে অর্থহীন, \ s \ s + এর অর্থ, একটি \ s এর পরে এক বা একাধিক + s +, যা একক + s + এ হ্রাস করা যেতে পারে, দ্বিতীয় উদাহরণটি আরও সঠিক কারণ আমরা কেবল ডাবল স্পেসগুলি প্রতিস্থাপন করতে চাই না, নিউলাইনস, তৃতীয়টি আরও অনুকূলিত হয়েছে কারণ এটি কেবল 2+ স্পেস সহ উদাহরণগুলিতে প্রযোজ্য। তবে স্ট্রিংরেপ্লেস (/ + (? =) / জি, '');, কেবল 2+ স্পেস সহ উদাহরণগুলিতে প্রযোজ্য তবে একটি স্থান ধাপের সাহায্যে একটি স্থানকে ওভাররাইট করা সংরক্ষণ করে।
ইভান ক্যারল

4
ইভানক্রোল আপনি ব্যর্থ হলেন কারণ \ s \ s + অবশ্যই \ s + এর থেকে আলাদা। \ s \ s + '\ t \ t' বা '\ t \ t \ t' মিলবে তবে '\ t' নয় NOT এবং এটাই সব, আপনি প্রতিটি এফ-এন একক সাদা স্থানের অক্ষরটি প্রতিস্থাপন করতে চান না।
18

আমি করি. পূর্ণ-পাঠ্য অনুসন্ধানের জন্য ব্যবহৃত (এবং স্নিপেট-প্রদর্শন): কোনও র্যান্ডম ট্যাব, নন-ব্রেকার বা জিনিসপত্রক নেই, দয়া করে।
T4NK3R

13

আমার এই পদ্ধতিটি রয়েছে, আমি আরও ভাল নামের অভাবের জন্য এটি ডার্প পদ্ধতি বলি।

while (str.indexOf("  ") !== -1) {
    str = str.replace(/  /g, " ");
}

এটি জেএসপিফায় চালানো কিছু আশ্চর্যজনক ফলাফল দেয়।


2
আমি জাহান্নাম হিসাবে বিব্রত হতে চলেছি যদি এটি সক্রিয় হয়ে যায় তবে আমি পরীক্ষার
কেসটি দ্রুততর

একটি পরীক্ষার কেস সরবরাহ করছে ... দুর্দান্ত উত্তর!
ওয়তুন

2
এটি আমার দিনটিকে তৈরি করেছে :-) মজার বিষয় "ডারপিং" প্রায়শই সমস্ত "চালাক" হওয়ার চেয়ে আরও ভাল কাজ করে। "ডার্প বিভক্ত" যদিও তার গাধাটিকে লাথি মেরেছে বলে মনে হচ্ছে। এখনও, upvoting প্রাপ্য।
ফ্রেড গ্যান্ড্ট

13

আরও শক্তিশালী পদ্ধতি: এটি যদি বিদ্যমান থাকে তবে প্রাথমিক এবং পিছনের স্থানগুলি সরিয়ে নেওয়ার বিষয়টিও যত্নশীল । উদাহরণ:

// NOTE the possible initial and trailing spaces
var str = "  The dog      has a long   tail, and it     is RED!  "

str = str.replace(/^\s+|\s+$|\s+(?=\s)/g, "");

// str -> "The dog has a long tail, and it is RED !"

আপনার উদাহরণে এই স্পেসগুলি ছিল না তবে এটি খুব সাধারণ দৃশ্য এবং এটির গ্রহণযোগ্য উত্তরটি কেবলমাত্র একক স্পেসে ট্রিমিং করছিল, যেমন: "দ্য ... রেড!", যা আপনার সাধারণত প্রয়োজন হবে না।


3
আমি এই নিদর্শনটি পিএইচপি এবং কাজে ব্যবহার করেছি। $ অংশগুলি = প্রেগ_স্প্লিট ("/ ^ \ s + | \ s + $ | \ s + (? = \ s) /", "আভেনিদা টানক্রাদো নেভেস, 745 পিসো তারেরো সালা");
ব্রুনো রিবেইরো

11

আরও শক্তপোক্ত:

ফাংশন ট্রিম (শব্দ)
{
    শব্দ = শব্দ.প্লেস (/ [^ \ x21- \ x7E] + / জি, ''); // নন-প্রিন্টিং অক্ষরগুলিকে স্পেসে পরিবর্তন করুন
    রিটার্ন ওয়ার্ড.রেপ্লেস (/ ^ \ s + | \ s + $ / g, ''); // নেতৃস্থানীয় / পিছনের স্থানগুলি সরান
}

8

আমার পরামর্শ

string = string.replace(/ +/g," ");

শুধু স্পেসের জন্য
বা

string = string.replace(/(\s)+/g,"$1");

একাধিক রিটার্নকে একক রিটার্নে রূপান্তর করার জন্য।


6

আমি জানি যে আমি পার্টিতে দেরি করেছি, তবে আমি একটি দুর্দান্ত সমাধান আবিষ্কার করেছি।

এটা এখানে:

var myStr = myStr.replace(/[ ][ ]*/g, ' ');

6

আপনি যদি প্রতিস্থাপন ব্যবহার করতে না চান (জাভাস্ক্রিপ্ট প্রতিস্থাপন ব্যবহার না করে একটি স্ট্রিংয়ের ফাঁকা স্থান পরিবর্তন করুন) তবে এখানে বিকল্প বিকল্প রয়েছে solution

var str="The dog      has a long   tail, and it     is RED!";
var rule=/\s{1,}/g;
str = str.split(rule).join(" "); 
document.write(str);

5

Newbies এবং এর জন্য বিস্তৃত এনক্রিপ্ট করা উত্তর।

এটি আমার মতো ডামি সবার জন্য যারা আপনার কিছু লোকের লিখিত স্ক্রিপ্টগুলি পরীক্ষা করে যা কার্যকর হয় না।

নিম্নলিখিত 3 টি উদাহরণ হ'ল আমি নীচের 3 টি ওয়েবসাইটে (বিশেষত পুরোপুরি কার্যকরভাবে কাজ করা) বিশেষ অক্ষর এবং অতিরিক্ত স্থানগুলি সরাতে পদক্ষেপগুলি are 1। EtaVisa.com 2. EtaStatus.com 3. Tikun.com} তাই আমি জানি যে এগুলি নিখুঁতভাবে কাজ করে।

আমরা একসাথে 50 এরও বেশি এবং কোনও সমস্যা না করে এগুলিকে এক সাথে বেঁধে রেখেছি।

// এটি বিশেষ অক্ষর + 0-9 অপসারণ করেছে এবং কেবলমাত্র অক্ষরের জন্য অনুমতি দেয় (উপরের এবং নিম্নতর কেস)

function NoDoublesPls1()
{
var str=document.getElementById("NoDoubles1");
var regex=/[^a-z]/gi;
str.value=str.value.replace(regex ,"");
}

// এটি বিশেষ অক্ষরগুলি সরিয়েছে এবং কেবলমাত্র অক্ষরের (উপরের এবং নিম্নতর কেস) এবং 0-9 এবং স্পেসগুলির জন্য অনুমতি দেয়

function NoDoublesPls2()
{
var str=document.getElementById("NoDoubles2");
var regex=/[^a-z 0-9]/gi;
str.value=str.value.replace(regex ,"");
}

// এটি বিশেষ অক্ষরগুলি সরিয়েছে এবং কেবলমাত্র অক্ষরের (উপরের এবং নিম্নতর কেস) এবং 0-9 এবং স্পেসগুলির জন্য অনুমতি দেয় // শেষে .replace (/ \ s \ s + / g, "") অতিরিক্ত স্থান সরিয়ে দেয় // যখন আমি একক উদ্ধৃতি ব্যবহৃত, এটি কাজ করে না।

function NoDoublesPls3()
{    var str=document.getElementById("NoDoubles3");
var regex=/[^a-z 0-9]/gi;
str.value=str.value.replace(regex ,"") .replace(/\s\s+/g, " ");
}

:: নেক্সট :: হিসাবে # 3 সংরক্ষণ করুন a .js// আমি আমার NoDoubles.js কল করেছি

:: নেক্সট :: আপনার জেএসকে আপনার পৃষ্ঠায় অন্তর্ভুক্ত করুন

 <script language="JavaScript" src="js/NoDoubles.js"></script>

আপনার ফর্ম ক্ষেত্রে এটি অন্তর্ভুক্ত করুন :: যেমন

<INPUT type="text" name="Name"
     onKeyUp="NoDoublesPls3()" onKeyDown="NoDoublesPls3()" id="NoDoubles3"/>

যাতে এটি দেখতে লাগে

<INPUT type="text" name="Name" onKeyUp="NoDoublesPls3()" onKeyDown="NoDoublesPls3()" id="NoDoubles3"/>

এটি বিশেষ অক্ষরগুলি সরিয়ে ফেলবে, একক স্থানের জন্য অনুমতি দেবে এবং অতিরিক্ত স্থান সরিয়ে দেবে।


এখানে কি হচ্ছে? বিন্যাসটি দেখতে খুব, খুব ভাঙা দেখাচ্ছে।
Nenotlep


1
var string = "The dog      has a long   tail, and it     is RED!";
var replaced = string.replace(/ +/g, " ");

অথবা আপনি যদি ট্যাবগুলি প্রতিস্থাপন করতে চান:

var replaced = string.replace(/\s+/g, " ");

1
ব্যবহারটি ক্লিনার বলে মনে হচ্ছে তবে এটি একক স্পেসগুলি একক স্পেসগুলির সাথে প্রতিস্থাপন করবে, কিছুটা রিন্ডন্ড্যান্ট এবং আমি নিশ্চিত নই তবে এটি দীর্ঘতর পাঠ্যের সাহায্যে পারফরম্যান্স সমস্যা তৈরি করতে পারে।
আহমতেটুনাল

আমি সবচেয়ে সংক্ষিপ্ততম, সহজ সমাধানটি ব্যবহার করব যা ব্যবহার করবে এবং কেবলমাত্র সেই ধরণের অপ্টিমাইজেশান সম্পর্কেই চিন্তিত যদি আমি জানি যে খুব বড় স্ট্রিংয়ের সাথে আমার মিল হওয়া দরকার, তখন আমি আসলে বিভিন্ন সমাধান পরিমাপ করব যা দেখতে হবে দ্রুত হতে পরীক্ষা না করে কী দ্রুত হবে তা আগেই অনুমান করা শক্ত হতে পারে; উদাহরণস্বরূপ, জাভাস্ক্রিপ্ট দোভাষীগুলিতে কিছু জটিল নিয়মিত এক্সপ্রেশন আপনাকে দ্রুত জেআইটি সংকলিত বাস্তবায়ন থেকে ধীরে ধীরে ব্যাখ্যা হওয়াতে পরিবর্তিত করতে বাধ্য করবে।
ব্রায়ান ক্যাম্পবেল

1

জ্যাকুরির ট্রিম () ফাংশন রয়েছে যা মূলত এই "FOo বার" এর মতো কিছু "FOo বার" তে পরিণত করে।

var string = "  My     String with  Multiple lines    ";
string.trim(); // output "My String with Multiple lines"

এটি অনেক বেশি দরকারী কারণ এটি স্বয়ংক্রিয়ভাবে শুরুর শুরুতে এবং স্ট্রিংয়ের শেষে খালি স্থানগুলি সরিয়ে দেয়। কোনও রেজেক্সের দরকার নেই।


3
হিসাবে আপনি বললেন, ট্রিম () এ খালি স্পেস সরিয়ে ফেলা শুরুতে এবং শেষ স্ট্রিং এর, কিন্তু না স্ট্রিং এর মাঝখানে, তাই, তাই না কাজ এই ক্ষেত্রে না, আউটপুট মাত্র হবে "একাধিক সঙ্গে আমার স্ট্রিং লাইন "। api.jquery.com/jQuery.trim
উদাহরণস্বরূপ

1

প্রতিস্থাপন ব্যবহৃত হয় না, স্ট্রিং = স্ট্রিং.স্প্লিট (/ \ ডাব্লু + /);



0

নীচের রেজেক্স আমরা সেড সিস্টেম কমান্ডের সাহায্যে ব্যাখ্যা করতে পারি। অনুরূপ রেজেক্স অন্যান্য ভাষা এবং প্ল্যাটফর্মগুলিতে ব্যবহার করা যেতে পারে।

পরীক্ষায় কিছু ফাইল পাঠ্য যুক্ত করুন

manjeet-laptop:Desktop manjeet$ cat test
"The dog      has a long   tail, and it     is RED!"

একক স্পেসের সাথে সমস্ত সাদা স্পেস প্রতিস্থাপন করতে আমরা নিম্নলিখিত রেজেক্স ব্যবহার করতে পারি

manjeet-laptop:Desktop manjeet$ sed 's/ \{1,\}/ /g' test
"The dog has a long tail, and it is RED!"

আশা করি এটি উদ্দেশ্যটি পরিবেশন করে


0

একক স্পেস দিয়ে একাধিক স্পেস প্রতিস্থাপন করার চেষ্টা করুন Try

<script type="text/javascript">
    var myStr = "The dog      has a long   tail, and it     is RED!";
    alert(myStr);  // Output 'The dog      has a long   tail, and it     is RED!'

    var newStr = myStr.replace(/  +/g, ' ');
    alert(newStr);  // Output 'The dog has a long tail, and it is RED!'
</script>

একাধিক স্পেস একক স্পেসের পরিবর্তে আরও পড়ুন @



0

আরও নিয়ন্ত্রণের জন্য আপনি মানটি হ্যান্ডেল করতে রিপ্লেস কলব্যাক ব্যবহার করতে পারেন।

value = "tags:HUNT  tags:HUNT         tags:HUNT  tags:HUNT"
value.replace(new RegExp(`(?:\\s+)(?:tags)`, 'g'), $1 => ` ${$1.trim()}`)
//"tags:HUNT tags:HUNT tags:HUNT tags:HUNT"

0

এই স্ক্রিপ্টটি শব্দ এবং ছাঁটাইয়ের মধ্যে যে কোনও সাদা স্থান (একাধিক স্পেস, ট্যাব, রিটার্ন, ইত্যাদি) সরিয়ে দেয়:

// Trims & replaces any wihtespacing to single space between words
String.prototype.clearExtraSpace = function(){
  var _trimLeft  = /^\s+/,
      _trimRight = /\s+$/,
      _multiple  = /\s+/g;

  return this.replace(_trimLeft, '').replace(_trimRight, '').replace(_multiple, ' ');
};

0

'মাউস পয়েন্টার টাচ'। স্থান (/ ^ \ s + | \ s + $ | (\ গুলি) + / জি, "$ 1")) এর কৌশলটি করা উচিত!


0

আমি জানি আমাদের রেইগেক্স ব্যবহার করতে হবে, তবে একটি সাক্ষাত্কারের সময় আমাকে রেগেক্স ব্যবহার না করে করতে বলা হয়েছিল।

@ স্লাইটাইলটাইলার নীচের পদ্ধতির সাথে আসতে সাহায্য করেছিল।

const testStr = "I   LOVE    STACKOVERFLOW   LOL";

const removeSpaces = str  => {
  const chars = str.split('');
  const nextChars = chars.reduce(
    (acc, c) => {
      if (c === ' ') {
        const lastChar = acc[acc.length - 1];
        if (lastChar === ' ') {
          return acc;
        }
      }
      return [...acc, c];
    },
    [],
  );
  const nextStr = nextChars.join('');
  return nextStr
};

console.log(removeSpaces(testStr));


বিবেচনা করুন: console.log (testStr.split ( "") .filter (গুলি => s.length) .join ( ""))
dpjanes
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.