জাভাস্ক্রিপ্টে আন্ডারস্কোর দিয়ে স্পেসগুলি প্রতিস্থাপন করছেন?


352

আমি এই কোডটি _ এর সাথে স্পেসগুলি প্রতিস্থাপনের জন্য ব্যবহার করার চেষ্টা করছি, এটি স্ট্রিংয়ের প্রথম স্থানের জন্য কাজ করে তবে স্পেসের অন্যান্য সমস্ত দৃষ্টান্ত অপরিবর্তিত রয়েছে। কেন জানি কেউ?

function updateKey()
{
    var key=$("#title").val();
    key=key.replace(" ","_");
    $("#url_key").val(key);
}

উত্তর:


693

চেষ্টা .replace(/ /g,"_");

সম্পাদনা করুন : বা আপনার .split(' ').join('_')যদি আরইএস থেকে বিরত থাকে

সম্পাদনা : জন রেসিগ বলেছেন :

যদি আপনি একটি স্ট্যাটিক অনুসন্ধানের সাথে স্ট্রিং দিয়ে অনুসন্ধান এবং প্রতিস্থাপন করেন এবং স্থিতিশীল প্রতিস্থাপন করে .split ("ম্যাচ") দিয়ে ক্রিয়াকলাপটি দ্রুত করাতে যোগ দিন ("প্রতিস্থাপন করুন") - যা স্ব-স্বজ্ঞাত বলে মনে হচ্ছে তবে এটি কাজ করে বেশিরভাগ আধুনিক ব্রাউজারে সেভাবে। (ফায়ারফক্সের পরবর্তী সংস্করণে .replace (/ ম্যাচ / জি, "প্রতিস্থাপন") এর পারফরম্যান্সকে বৃহত্তরভাবে উন্নত করার লক্ষ্যে কিছু পরিবর্তন চলছে - তাই আগের বিবৃতিটি দীর্ঘদিনের মতো হবে না))


1
রেজিপ্যাক্স ছাড়া এটি করার কোনও উপায় আছে কি?
22: 22 তে ক্লিক করুন

14
.স্প্লিট ('') .জায়েন ('_')
ক্রিসেন্ট ফ্রেশ

7
/ /gব্যবহারের পরিবর্তে /\ /g- উভয় জাভাস্ক্রিপ্টে কাজ করে। পরেরটি কফিস্ক্রিপ্টেও কাজ করে।
টম লেস

27
2015 এর .replace(/ /g,"_");চেয়ে দ্রুততর .split(' ').join('_')
গ্যাব্রিয়েল টমিতসুকা

8
ভবিষ্যতের লোকেরা এই @ আইনেজ ব্রাউজ করে উভয় গতির বিভাজন পরীক্ষা করতে / ভিএস-তে যোগ দিতে একটি লিঙ্ক রয়েছে। প্রতিস্থাপন করুন। 2018 এর শেষের দিকে প্রতিস্থাপনটি উল্লেখযোগ্যভাবে দ্রুত।
রিক্স


58

নীচে প্রসন্নার প্রশ্নের উত্তর দিতে:

জাভাস্ক্রিপ্টে আপনি একক স্থান দ্বারা একাধিক স্পেস কীভাবে প্রতিস্থাপন করবেন?

আপনি একই replaceনিয়মিত ভিন্ন অভিব্যক্তি সহ একই ফাংশনটি ব্যবহার করবেন । হোয়াইটস্পেসের জন্য \sএক্সপ্রেশন এবং "1 বা তার বেশি বার" এর এক্সপ্রেশনটি হ'ল +প্লাস চিহ্ন, সুতরাং আপনি কেবলমাত্র অ্যাডামের উত্তরটি নীচের সাথে প্রতিস্থাপন করতে পারবেন:

key=key.replace(/\s+/g,"_");

30

আপনি এটি চেষ্টা করতে পারেন

 var str = 'hello     world  !!';
 str = str.replace(/\s+/g, '-');

এটি একক '-' দিয়ে একাধিক স্পেস প্রতিস্থাপন করবে।


3
সম্ভবত লক্ষণীয়: এটি অন্যান্য সাদা স্থান ট্যাবগুলিও ফেলা করে।
বেরি এম।

18

আমি এটির জন্য জেএস পারফরম্যান্স পরীক্ষা তৈরি করেছি http://jsperf.com/split-and-join-vs-replace2


1
আজকাল প্রতিস্থাপনটি আরও ভাল সামগ্রিক পছন্দ বলে মনে হচ্ছে
হুমান

কাভ - কি? যদিও সমস্ত ব্রাউজার সমান নয়, গড় বিভক্ত / যুক্ত হওয়া আরও ভাল। আসলে, অনেক আধুনিক ব্রাউজারে এটি একটি স্বর আরও ভাল! এটি স্থাপনের জন্য ধন্যবাদ ইনিজ!
ডেভিড হবস

4
এক বছর পরে এখন এবং ক্রোম 32.0.1700.107 এ উপরোক্ত পরীক্ষাটি চালানো .. str.replace () আরও ভাল ফলাফল দেয় (%৪% দ্রুত)
jenovachild

12

আন্ডারস্কোর দিয়ে স্পেসগুলি প্রতিস্থাপন করুন

var str = 'How are you';
var replaced = str.split(' ').join('_');

আউটপুট: হাও_রে_আপনি


3

আমি জানি এটি পুরানো তবে আমি স্ট্রিংয়ের প্রসার বাড়ানোর কথা কাউকে দেখিনি prototype

String.prototype.replaceAll = function(search, replace){
    if(!search || !replace){return this;} //if search entry or replace entry empty return the string
    return this.replace(new RegExp('[' + search + ']', 'g'), replace); //global RegEx search for all instances ("g") of your search entry and replace them all.
};

1
এটি কোনও ভয়ঙ্কর ধারণা বলে আপনি কাউকে এটি করতে দেখেন নি। আরও এই জন্য এই অন্যান্য SO প্রশ্ন দেখুন।

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