একটি নির্দিষ্ট চরিত্রের পরে সবকিছু সরান


281

কোনও নির্দিষ্ট চরিত্রের পরে সমস্ত কিছু মুছে ফেলার বা কেবল সেই চরিত্র পর্যন্ত সবকিছু বেছে নেওয়ার কোনও উপায় আছে? আমি একটি হেরেফের কাছ থেকে মানটি পেতে এবং "?" পর্যন্ত পেয়ে যাচ্ছি এবং এটি সর্বদা আলাদা আলাদা পরিমাণে চরিত্র হতে চলেছে।

এটার মত

/Controller/Action?id=11112&value=4444

আমি চাই href হতে /Controller/Action কেবলমাত্র তাই আমি "?" এর পরে সমস্ত কিছু সরিয়ে ফেলতে চাই।

আমি এখন এটি ব্যবহার করছি:

 $('.Delete').click(function (e) {
     e.preventDefault();

     var id = $(this).parents('tr:first').attr('id');                
     var url = $(this).attr('href');

     console.log(url);
 }

উত্তর:


468
var s = '/Controller/Action?id=11112&value=4444';
s = s.substring(0, s.indexOf('?'));
document.write(s);

নমুনা এখানে

আমার আরও উল্লেখ করা উচিত যে নেটিভ স্ট্রিং ফাংশনগুলি নিয়মিত এক্সপ্রেশনগুলির চেয়ে অনেক দ্রুততর হয়, যা প্রয়োজনে কেবল সত্যই ব্যবহৃত হওয়া উচিত (এটি এই ক্ষেত্রেগুলির মধ্যে একটি নয়)।

কোনও '?' এর জন্য অ্যাকাউন্টে আপডেট হওয়া কোড:

var s = '/Controller/Action';
var n = s.indexOf('?');
s = s.substring(0, n != -1 ? n : s.length);
document.write(s);

নমুনা এখানে


15
এই স্প্যাগেটি কোডটি সেরা উত্তর হওয়া উচিত নয়। বিভক্ত পদ্ধতির উত্তরটি দেখুন
লাস্টট্রিবুনাল

1
এলওএল - যে কোনওভাবে তারা রেজেক্স বুঝতে পারে না এবং কীভাবে বিভক্ত হয়ে কাজ করে ভোটদানের ক্ষমতা পেয়েছে। স্ট্রিং পদ্ধতিগুলি বোঝা যথেষ্ট। কীভাবে জিনিসগুলি কাজ করে এবং বৃহত্তম কোডটি বিশ্বের উপর নিয়ন্ত্রণ করে তা অন্তত বোঝা যায়: পি তাই আমি বিভক্ত উত্তরের (ওল্ড পরিবর্তন করার জন্য) ধাপে ধাপে ধাপে যুক্ত করেছি।

1
এলওএল - বিভাজনটি বিভাগটি ব্যবহার না করার জন্য +1 তাই রেজেক্স গ্রহণ করতে পারে? এলওএল - জাভাস্ক্রিপ্টটি জাভাস্ক্রিপ্ট ব্যবহার না করার জন্য রেজেক্স তাই +1 ব্যবহার করেন? কীভাবে আরও কোড এবং জটিলতা এটিকে একটি সহজ কাজ করতে পারে? রেইগেক্স এবং বিভক্ত উভয়ই কি সহজ এবং আরও কার্যকর নয়?

294

আপনি split()ফাংশনটি ব্যবহার করতে পারেন । এটি মনে হয় সবচেয়ে সহজ মনে হচ্ছে যে আমার মনে আসে :)।

url.split('?')[0]

jsFizz ডেমো

একটি সুবিধা হ'ল ?স্ট্রিংটিতে কিছু না থাকলেও এই পদ্ধতিটি কাজ করবে - এটি পুরো স্ট্রিংটি ফিরিয়ে দেবে।


1
[0] এই পরিস্থিতিতে কি করে?
দেজন.এস

13
splitএকটি অ্যারে প্রদান করে (এই ক্ষেত্রে এটিতে দুটি উপাদান রয়েছে 0এবং 1), এবং [0]ফিরে আসা অ্যারের প্রথম উপাদানটি পায়।
কাপা

41
+1, এই সম্পর্কে সর্বোত্তম জিনিসটি হ'ল এটি না থাকলেও সর্বদা কাজ করে?
কেভিন

আমরা '\' বিভক্ত করতে চাইলে আমাদের কী করা উচিত?
anud33p

1
এই উত্তরটি পছন্দ করুন, এত সহজ এবং এটি আপনাকে যা দেয় তাতে সত্যই শক্তিশালী
রিচলুইস

19
var href = "/Controller/Action?id=11112&value=4444";
href = href.replace(/\?.*/,'');
href ; //# => /Controller/Action

এটি একটি 'খুঁজে পেলে কাজ করবে?' এবং যদি এটি না হয়


এটি কেবল 'মুছে ফেলবে?' ওপি-তে অন্য কেউ জিজ্ঞাসা করেননি
কেভিন

4
এটি ?(অন্তর্ভুক্ত)
mcont

2
সেরা উত্তর ! ওপি সমস্ত কিছু পরে মুছে ফেলার জন্য ?বলেছে এবং স্পষ্টভাবে ?এও বলেছে যে এটি সরানোর জন্য বলা হয়েছে: আমি চাই যে href কেবল / নিয়ামক / অ্যাকশন হিসাবে

3

আপনিও যদি "রাখতে চান?" এবং কেবলমাত্র সেই নির্দিষ্ট চরিত্রের পরে সমস্ত কিছু সরিয়ে ফেলুন , আপনি এটি করতে পারেন:

var str = "/Controller/Action?id=11112&value=4444",
    stripped = str.substring(0, str.indexOf('?') + '?'.length);

// output: /Controller/Action?

স্ট্রিংটিতে একটি না থাকলে এটি কাজ করে না?
স্টিফান বিজজিটার

@ স্টাফানবিজিটার হ্যাঁ আমি জানি। যেহেতু আমার উত্তরটি বলে: "
আপনিও

আশ্চর্যের বিষয়, আমার মন্তব্যটি @ ইমরানের অন্যান্য উত্তরের জন্য বোঝানো হয়েছিল। জানি না কেন আমি আপনার উত্তরে পোস্ট করেছি।
স্টিফান বিজজিটার

1

খুব দেরীতে পার্টি হতে পারে: পি

আপনি একটি পিছনে রেফারেন্স ব্যবহার করতে পারেন $ '

$' - Inserts the portion of the string that follows the matched substring.

let str = "/Controller/Action?id=11112&value=4444"

let output = str.replace(/\?.+/g,"$'")

console.log(output)


1

এটি আমার জন্য খুব সুন্দরভাবে কাজ করে:

var x = '/Controller/Action?id=11112&value=4444';
var remove_after= x.indexOf('?');
var result =  x.substring(0, remove_after);
alert(x);

0

আমার জন্য কাজ করেছেন:

      var first = regexLabelOut.replace(/,.*/g, "");

-1

জাভাস্ক্রিপ্ট ব্যবহার করে খুব সহজেই রেফারেন্সের জন্য লিঙ্কটি জেএস স্ট্রিং দেখুন

সম্পাদনা করুন এটি সহজেই হিসাবে সম্পন্ন করতে পারেন। ;)

var url="/Controller/Action?id=11112&value=4444 ";
var parameter_Start_index=url.indexOf('?');
var action_URL = url.substring(0, parameter_Start_index);
alert('action_URL : '+action_URL);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.