কোনও URL এর শুরুতে স্ট্রিংটি সরান


105

আমি www.ইউআরএল স্ট্রিংয়ের শুরু থেকে " " অংশটি সরাতে চাই

উদাহরণস্বরূপ এই পরীক্ষার ক্ষেত্রে:

যেমন www.test.comtest.com
যেমন www.testwww.comtestwww.com
যেমন testwww.comtestwww.com(যদি এটি বিদ্যমান না থাকে)

আমার কি রেজএক্সপ্যাক ব্যবহার করা দরকার বা স্মার্ট ফাংশন আছে?


এটি একটি অতি পুরনো প্রশ্ন, তবে এটি 2019 এর মধ্যে উল্লেখ করা দরকার যে আপনি
রেইগেক্সের

1
www.comএর সমস্ত প্রতিক্রিয়ায় এর মালিক ভয়ানকভাবে দু: খিত হতে চলেছেন।
BrainCore

উত্তর:


234

আপনার যা প্রয়োজন তা নির্ভর করে, আপনার কয়েকটি পছন্দ আছে, আপনি যা করতে পারেন:

// this will replace the first occurrence of "www." and return "testwww.com"
"www.testwww.com".replace("www.", "");

// this will slice the first four characters and return "testwww.com"
"www.testwww.com".slice(4);

// this will replace the www. only if it is at the beginning
"www.testwww.com".replace(/^(www\.)/,"");

24
সম্ভবত শেষটি হ'ল সর্বোত্তম সমাধান।
ক্রিস্টোফ

11
এটি সর্বোত্তম সমাধান নয়। স্ট্রাস্টিং অপসারণের জন্য একটি রেজিপেক্স তৈরি করা একটি ওভারকিল!
বেরেজভস্কিই

4
@berezovskiy এটি আপনি যা করছেন তার উপর নির্ভর করে, যদি উদাহরণস্বরূপ আপনি এমন একটি গেম তৈরি করছেন যেখানে পারফরম্যান্স কী আপনি ঠিক বলেছেন, বেশিরভাগ ক্ষেত্রে আইএমও সুস্পষ্ট হওয়া আরও ভাল এবং কোনও ন্যূনতম পারফেক্টের জন্য কোনও বাগ প্রবর্তন না করা আঘাত। তবুও, উত্তরটি চয়ন করার জন্য 3 টি পৃথক উদাহরণ সরবরাহ করে।
নিকোসন্তানজেলো

7
আমি দৃ strongly়ভাবে শেষ বিকল্প পছন্দ। যতক্ষণ এটা সত্য যে ব্যবহার slice()হয় সামান্য দ্রুততর, এই পরিস্থিতিতে 99.9% একটি অপ্রাসঙ্গিক, অকাল অপ্টিমাইজেশান হয়। রাইটিং replace(/^www\./,"") স্পষ্ট, স্ব-ডকুমেন্টিং কোড।
টম লর্ড

5
প্রথম এবং দ্বিতীয় সমাধান তৃতীয় উদাহরণ ক্ষেত্রে ব্যর্থ হবে। টুটুট
ইয়ারেক টি

13

হ্যাঁ, একটি রেজিপ্লেক্স রয়েছে তবে আপনার এটি বা কোনও "স্মার্ট" ফাংশন ব্যবহার করার দরকার নেই:

var url = "www.testwww.com";
var PREFIX = "www.";
if (url.indexOf(PREFIX) == 0) {
  // PREFIX is exactly at the beginning
  url = url.slice(PREFIX.length);
}

11

যদি স্ট্রিংটিতে সর্বদা একই বিন্যাস থাকে তবে একটি সরল substr()যথেষ্ট হওয়া উচিত।

var newString = originalStrint.substr(4)

4
testwww.comtwww.com= ব্যর্থ
ক্রিস্টোফ

1
@ ক্রিসটফ ইয়া, যেভাবে তিনি আমার প্রশ্নের উত্তর পরে তাঁর প্রশ্ন সম্পাদনা করেছিলেন, সে কারণেই আমি উল্লেখ করেছি যে যদি স্ট্রিংটিতে সর্বদা একই বিন্যাস থাকে
টালনিকোলাস

14
@ ক্রিসটফ এবং এটি " testwww.comwww.com=
ফেইল

6

হয় ম্যানুয়ালি, পছন্দ

var str = "www.test.com",
    rmv = "www.";

str = str.slice( str.indexOf( rmv ) + rmv.length );

বা কেবল ব্যবহার করুন .replace():

str = str.replace( rmv, '' );

1
আমি ম্যানুয়াল পদ্ধতির পছন্দ করি, কেননা রেজিজেসগুলিকে গোলমাল করার কোনও ঝুঁকি ছাড়াই স্ট্রিংগুলি পরিবর্তনশীল থেকে আসতে পারে।
এনএইচ

5

আপনি স্ট্রিং প্রোটোটাইপ একটি অপসারণপ্রিফিক্স ফাংশন দিয়ে ওভারলোড করতে পারেন:

String.prototype.removePrefix = function (prefix) {
    const hasPrefix = this.indexOf(prefix) === 0;
    return hasPrefix ? this.substr(prefix.length) : this.toString();
};

ব্যবহার:

const domain = "www.test.com".removePrefix("www."); // test.com

আমি বিশ্বাস করি
স্ট্রিংয়ের

হ্যাঁ, কোনো প্রোটোটাইপ ওভারলোডিং মতো ঝুঁকি অন্য পদ্ধতি (এখানে দিয়ে একটি নাম সংঘর্ষের থাকতে হয় removePrefixউপর Stringবর্গ), বিপরীতভাবে এটা শুধু কলে বেশ সুবিধাজনক .removePrefix। এটা আপনার উপর নির্ভর করছে.
ফ্ল্যাভিয়ান ভলকেন

2

নিম্নলিখিত চেষ্টা করুন

var original = 'www.test.com';
var stripped = original.substring(4);

0

আপনি ইউআরএল কাটতে এবং প্রতিক্রিয়া ব্যবহার করতে পারেন seসূচি (নতুন ইউআরএল), এটি আপনাকে নতুন url সহ একই পৃষ্ঠায় নিয়ে আসবে


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