একটি নির্দিষ্ট অক্ষর jQuery বা জাভাস্ক্রিপ্টের আগে সাবস্ট্রিং কীভাবে দখল করা যায়


237

আমি ',' কমা এর আগে সমস্ত কিছু বের করার চেষ্টা করছি। আমি জাভাস্ক্রিপ্ট বা jQuery এ কীভাবে করব? আমি এটি চেষ্টা করেছিলাম এবং কাজ করছি না ..

1345 albany street, Bellevue WA 42344

আমি কেবল রাস্তার ঠিকানা দখল করতে চাই।

var streetaddress= substr(addy, 0, index(addy, '.')); 

29
addy.split(',', 1)[0]
এন্টাক

উত্তর:


404
var streetaddress= addy.substr(0, addy.indexOf(',')); 

যদিও প্রতিটি পদ্ধতি কী করে তার বিষয়ে সুনির্দিষ্ট তথ্যের জন্য সেরা স্থান নয় ( মোজিলা বিকাশকারী নেটওয়ার্ক এর জন্য আরও ভাল) ডাব্লু 3 স্কুল স্কুল আপনাকে সিনট্যাক্সের সাথে পরিচয় করিয়ে দেওয়ার জন্য ভাল।


22
স্ট্রিংটিতে অনুসন্ধানের অক্ষরের উদাহরণ না থাকলে এটি কাজ করবে না। এটি একটি খালি স্ট্রিং ফিরে আসবে।
ডেভিড জি

1
substrপ্রস্তাবিত নয়; substringপরিবর্তে বিকাশকারী
বেন ক্র্যাসি

152
var streetaddress = addy.split(',')[0];

10
দোলনা এবং চতুর্দিকে - এটি অকারণে একটি অ্যারে তৈরি করে, তবে স্টপ চরিত্রটি স্ট্রিংয়ে না থাকলে কমপক্ষে কাজ করে
Alnitak

2
পারফরম্যান্স তুলনার জন্য, দেখুন: jsperf.com/street-array-vs-substr
বিদায় স্ট্যাক এক্সচেঞ্জ

2
পূর্ববর্তী মন্তব্য লিঙ্কটি মারা গেছে: /
elki42

29

এটা চেষ্টা কর:

streetaddress.substring(0, streetaddress.indexOf(','));

1
আমার উত্তরের জন্য কেন ভালোবাসা নেই? যদি এই উত্তরটি সঠিক থাকে তবে stackoverflow.com/questions/3745515/… আমার উত্তর গৃহীত উত্তরের মতোই নির্ভুল এবং 0. ছাড়া অন্য সূচকগুলি শুরু করার জন্য কাজ করে
মিকি জি

8
উপরে ডেভিড জি দ্বারা নির্দেশিত হিসাবে, সম্ভবত কোনও কমা না থাকলে এটি কাজ করে না বলে সম্ভবত। ওপি সূচিত হতে পারে যে স্ট্রিংটিতে সর্বদা কমা থাকে তবে অনেক ক্ষেত্রে ডিলিমিটারের গ্যারান্টি নেই। Jsfiddle.net/13pkp1xn
Bumptious Q Bangwhistle

22
//split string into an array and grab the first item

var streetaddress = addy.split(',')[0];

এছাড়াও, আমি আরও ভাল পাঠযোগ্যতার জন্য আপনার ভেরিয়েবলের নাম উট-কেস (StreetAddress) দিয়ে রাখার পরামর্শ দেব recommend


ইন্ডেক্সফ ব্যবহারের পদ্ধতির চেয়ে এটি আরও ভাল, দৃশ্যে যেখানে কোনও কমা চরিত্র নেই
eyal_katz

2
আপনিই প্রথম কিছু প্রক্রিয়াকরণ এবং স্টপ বিভাজন রক্ষা করতে পারে "," ব্যবহার কি একটি মন্তব্য হিসেবে পোস্ট @antak দ্বারা পাওয়া stackoverflow.com/a/22386366/601386 : addy.split(',', 1)[0]বিকাশকারী.মোজিলা.অর্গ.ইন- ইউএস / ডকস / ওয়েব / জাভা স্ক্রিপ্ট / রেফারেন্স / See দেখুন ।
ফ্লু

অ্যারে ডিকনস্ট্রাকশন ব্যবহার করে আপনি এটি করতে পারেন: const [streetAddress,] = addy.split(','); আপনি যখন একাধিক মান চান তখন এই ক্ষেত্রে সহায়ক হয় যেমন: let [callerIdName, callerId] = callerIdString.split('<'); (মূল কলারআইড স্ট্রিং ফর্ম্যাটটি এমসিমুলিন, পার্কার <+ 1XXXXXXXXXX))
পার্কার_কোড

1
এই উত্তরটি ঠিক 30 অক্টোবর, 2015-এ পোস্ট করা উত্তরটির মতো নয়?
কোজো

15

আপনি যদি এটির সংক্ষিপ্ত পছন্দ করেন তবে কেবল একটি RegExp ব্যবহার করুন :

var streetAddress = /[^,]*/.exec(addy)[0];

4
+1 টি, আমি মনে করি এই একটি যুক্তিসঙ্গত পদ্ধতি, কিন্তু আমি এই থেকে একটি ইঙ্গিত নিয়ে যায় এবং সঙ্গে গিয়েছিলামaddy.split(',', 1)[0]
antak

3
এই পদ্ধতিটি উদাহরণস্বরূপ খুব সুন্দর যদি আপনি সাদা
জায়গাতে

12

ডেভিড জি এর উত্তর হিসাবে প্রায় একই জিনিস কিন্তু বেনামে ফাংশন ছাড়া, আপনি যদি একটি যুক্ত মনে করেন না।

s = s.substr(0, s.indexOf(',') === -1 ? s.length : s.indexOf(','));

এই ক্ষেত্রে আমরা এই সত্যটি ব্যবহার করি যে এর দ্বিতীয় তর্কটি substrএকটি দৈর্ঘ্য, এবং আমরা জানি যে আমাদের সাবস্ট্রিং 0 থেকে শুরু হচ্ছে।

উপরের উত্তরটি অনাকাঙ্ক্ষিত আচরণের কারণে জেনেরিক সমাধান নয় কারণ যদি স্ট্রিংটিতে আপনি সন্ধান করছেন এমন অক্ষর না থাকে।

আপনি যদি জেনেরিক ক্ষেত্রে সঠিক আচরণ করতে চান তবে এই পদ্ধতিটি বা ডেভিড জি এর পদ্ধতিটি ব্যবহার করুন, শীর্ষের উত্তর নয়

রেজেক্স এবং বিভক্ত পদ্ধতিগুলিও কাজ করবে তবে এই নির্দিষ্ট সমস্যার জন্য কিছুটা ধীর / ওভারকিল হতে পারে।


8

আপনি ব্যবহার করতে পারেন shift()

var streetaddress = addy.split(',').shift();

এমডিএন ওয়েব ডক্স অনুসারে:

shift()পদ্ধতি সরিয়ে ফেলা হবে প্রথম একটি অ্যারের এবং আয় অপসারিত উপাদান থেকে উপাদান। এই পদ্ধতিটি অ্যারের দৈর্ঘ্য পরিবর্তন করে।

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift


সঙ্গে ইন্ডেক্স [0] .shift () ব্যবহার করে অধিক কার্যকরী হয়
MysteryPancake


4

আপনি যদি মূল স্ট্রিংটি যদি অনুসন্ধানের অক্ষর না রাখেন তবে তা যদি কোনও ছোঁয়াচে ফিরে আসতে চান তবে আপনি একটি বেনাম ফাংশন (একটি বন্ধকরণ) ব্যবহার করতে পারেন:

var streetaddress=(function(s){var i=s.indexOf(',');
   return i==-1 ? s : s.substr(0,i);})(addy);

এটি আরও জেনেরিক করা যেতে পারে:

var streetaddress=(function(s,c){var i=s.indexOf(c);
   return i==-1 ? s : s.substr(0,i);})(addy,',');


2

আপনি রেজেক্স ব্যবহার করতে পারেন কারণ এটি প্রয়োজনীয়তার সাথে মিলে গেলে স্ট্রিং আপনাকে দেবে। কোডটি এমন কিছু হবে:

const address = "1345 albany street, Bellevue WA 42344";
const regex = /[1-9][0-9]* [a-zA-Z]+ [a-zA-Z]+/;
const matchedResult = address.match(regex);

console.log(matchedResult[0]); // This will give you 1345 albany street.

সুতরাং কোড ভাঙ্গা। [1-9][0-9]*মূলত অর্থ প্রথম সংখ্যাটি একটি শূন্য হতে পারে না এবং এর মধ্যে একটি সংখ্যা হতে হবে 1-9এবং পরের সংখ্যাটি যে কোনও সংখ্যা 0-9হতে পারে এবং শূন্য বা একাধিকবার ঘটতে পারে কারণ কখনও কখনও সংখ্যাটি কেবলমাত্র একটি অঙ্ক এবং তারপরে এটি একটি স্পেসের সাথে মেলে। [a-zA-Z]মূলত সমস্ত বড় অক্ষর ছোট অক্ষরের সাথে মেলে এবং এক বা একাধিকবার ঘটতে হয় এবং এটি পুনরাবৃত্তি হয়।


0

আপনি ব্যবহার করতে পারেন Azle স্বাগতম সাবস্ট্রিং পেতে আগে :

str = 'This is how we go to the place!'

az.get_everything_before(str, 'place')

ফলাফল : আমরা এভাবেই যাই

পরে

str = 'This is how we go to the place!'

az.get_everything_after(str, 'go')

ফলাফল : জায়গা!

এবং এর মধ্যে :

str = 'This is how we go to the place!'

az.get_everything_between(str, 'how', 'place')

ফলাফল : আমরা যেতে

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