আমার কাছে অতিরিক্ত হোয়াইটস্পেসের সাথে স্ট্রিং রয়েছে, প্রতিবার কেবলমাত্র একটি সাদা জায়গা থাকতে আমি চাই এটি কেবল একটিই হোক be
যে কেউ? আমি গুগল অনুসন্ধান করার চেষ্টা করেছি, কিন্তু কিছুই আমার পক্ষে কার্যকর হয়নি।
ধন্যবাদ
আমার কাছে অতিরিক্ত হোয়াইটস্পেসের সাথে স্ট্রিং রয়েছে, প্রতিবার কেবলমাত্র একটি সাদা জায়গা থাকতে আমি চাই এটি কেবল একটিই হোক be
যে কেউ? আমি গুগল অনুসন্ধান করার চেষ্টা করেছি, কিন্তু কিছুই আমার পক্ষে কার্যকর হয়নি।
ধন্যবাদ
উত্তর:
এটার মতো কিছু:
var s = " a b c ";
console.log(
s.replace(/\s+/g, ' ')
)
আপনি স্ট্রিংকে এই আচরণগুলি পদ্ধতি হিসাবে প্রয়োগ করার জন্য বাড়িয়ে তুলতে পারেন:
String.prototype.killWhiteSpace = function() {
return this.replace(/\s/g, '');
};
String.prototype.reduceWhiteSpace = function() {
return this.replace(/\s+/g, ' ');
};
এটি এখন আপনার পছন্দসই স্ট্রিংগুলি তৈরি করতে নীচের মার্জিত ফর্মগুলি ব্যবহার করতে সক্ষম করে:
"Get rid of my whitespaces.".killWhiteSpace();
"Get rid of my extra whitespaces".reduceWhiteSpace();
প্রতিস্থাপন ফাংশন সহ একটি নিয়মিত অভিব্যক্তি ব্যবহার কৌশলটি করে:
string.replace(/\s/g, "")
var s = ' a b word word. word, wordword word ';
// with ES5:
s = s.split(' ').filter(function(n){ return n != '' }).join(' ');
console.log(s); // "a b word word. word, wordword word"
// or ES6:
s = s.split(' ').filter(n => n).join(' ');
console.log(s); // "a b word word. word, wordword word"
এটি হোয়াইটস্পেসের মাধ্যমে স্ট্রিংকে বিভক্ত করে , অ্যারে থেকে সমস্ত খালি অ্যারে আইটেমগুলি সরিয়ে দেয় (যেগুলি একক জায়গার চেয়ে বেশি ছিল) এবং সমস্ত শব্দ আবার একটি স্ট্রিংয়ের সাথে মিলিত হয়, যার মধ্যে একটি একক সাদা স্থান রয়েছে।
আমি অনুমান করছি আপনি স্ট্রিংয়ের শুরু এবং / অথবা শেষের থেকে ফাঁকা স্থানগুলি সন্ধান করছেন ( সমস্ত স্থান সরিয়ে দেওয়ার চেয়ে ?
যদি এটি হয় তবে আপনার এটির মতো একটি রেইজেক্স দরকার:
mystring = mystring.replace(/(^\s+|\s+$)/g,' ');
এটি স্ট্রিংয়ের শুরু বা শেষ থেকে সমস্ত স্থান সরিয়ে ফেলবে। আপনি যদি কেবল শেষ থেকে ফাঁকা জায়গাটি ট্রিম করতে চান, তবে রেজেক্স পরিবর্তে এর মতো দেখাবে:
mystring = mystring.replace(/\s+$/g,' ');
আশা করি এইটি কাজ করবে.
''
পরিবর্তে হওয়া উচিত ' '
।
jQuery.trim () ভাল কাজ করে।
আমি জানি যে কোনও বিষয়ে আমার নেক্রোমেন্সি করা উচিত নয়, তবে প্রশ্নের বিবরণ দেওয়াতে আমি সাধারণত এটি বোঝাতে চাই:
এর জন্য, আমি এই জাতীয় কোড ব্যবহার করি (কোডটিকে আরও কিছুটা পাঠযোগ্য করে তোলার জন্য প্রথম রেজিপেক্সের প্রথম বন্ধনীগুলি এখানে রয়েছে ... আপনি তাদের সাথে পরিচিত না হলে রেজেক্সপস ব্যথা হতে পারে):
s = s.replace(/^(\s*)|(\s*)$/g, '').replace(/\s+/g, ' ');
এটি কাজ করার কারণটি হ'ল স্ট্রিং-অবজেক্টের পদ্ধতিগুলি একটি স্ট্রিং অবজেক্ট ফেরত দেয় যার উপর আপনি অন্য পদ্ধতিটি আহ্বান করতে পারেন (ঠিক যেমন jQuery এবং কিছু অন্যান্য লাইব্রেরির মতো)। আপনি যদি পর পর এক একক বস্তুতে একাধিক পদ্ধতি চালনা করতে চান তবে কোডের আরও অনেক কমপ্যাক্ট উপায়।
var x = "টেস্ট টেস্ট পরীক্ষা" .স্প্লিট ("") .জাইন (""); সতর্কতা (এক্স);
এটা চেষ্টা কর.
var string = " string 1";
string = string.trim().replace(/\s+/g, ' ');
ফলাফল হবে
string 1
এখানে যা ঘটেছিল তা হ'ল এটি প্রথমে বাইরের স্পেসগুলি ছাঁটাই করে প্রথমে trim()
অভ্যন্তরীণ স্পেসগুলি ব্যবহার করে ট্রিম করবে .replace(/\s+/g, ' ')
।
আপনি যদি ব্যবহারকারীকে নামে ফাঁকা স্থান দিতে সীমাবদ্ধ রাখতে চান তবে কেবল একটি বিবৃতি তৈরি করুন এবং শর্ত দিন। আমি যেমন করেছি:
$j('#fragment_key').bind({
keypress: function(e){
var key = e.keyCode;
var character = String.fromCharCode(key);
if(character.match( /[' ']/)) {
alert("Blank space is not allowed in the Name");
return false;
}
}
});
এটা কেমন?
"my test string \t\t with crazy stuff is cool ".replace(/\s{2,9999}|\t/g, ' ')
আউটপুট "my test string with crazy stuff is cool "
এটি যেকোন ট্যাব থেকে মুক্তিও পায়
\s
। অযথা জটিল রেজেেক্স, পাশাপাশি কেবল লিখতে পারে /\s+/g
।