স্ট্রিংটি নাল বা খালি কিনা তা যাচাই করার সহজ উপায়


87

আমি এই কোড পেয়েছি যা খালি বা নাল স্ট্রিং পরীক্ষা করে। এটি পরীক্ষায় কাজ করছে।

eitherStringEmpty= (email, password) ->
  emailEmpty = not email? or email is ''
  passwordEmpty = not password? or password is ''
  eitherEmpty = emailEmpty || passwordEmpty         

test1 = eitherStringEmpty "A", "B" # expect false
test2 = eitherStringEmpty "", "b" # expect true
test3 = eitherStringEmpty "", "" # expect true
alert "test1: #{test1} test2: #{test2} test3: #{test3}"

আমি যা ভাবছি তা হ'ল যদি এর চেয়ে ভাল উপায় থাকে not email? or email is ''। আমি কি string.IsNullOrEmpty(arg)একক কল দিয়ে কফিস্ক্রিপ্টে সি # এর সমতুল্য করতে পারি ? আমি এটির জন্য কোনও ফাংশনটি সর্বদা সংজ্ঞায়িত করতে পারি (যেমনটি আমি করেছি) তবে আমি ভাবছি যে ভাষাটি আমার অনুপস্থিত রয়েছে সেখানে কিছু আছে কিনা।

উত্তর:


118

হা:

passwordNotEmpty = not not password

বা সংক্ষিপ্ত:

passwordNotEmpty = !!password

4
এটি দুটি জবাবের আরও "জাভাস্ক্রিপ্ট-ওয়াই"। বিশেষত আপনি যদি !!সংস্করণটি ব্যবহার করেন তবে এটি বুলিয়ানকে মূলত কাস্ট করার একটি সাধারণ উপায়। যদি এটি গুরুত্বপূর্ণ হয় তবে জেরেমির পরামর্শ অনুসারে কোনও ফাংশন সংজ্ঞায়নের চেয়ে এটি প্রায় অবশ্যই দ্রুত।
অ্যারন ডুফর

তারা সকলেই কাজ করে তবে এইটি সবচেয়ে বেশি লাভ করেছে। পাঠযোগ্যতার জন্য আমি স্ট্যাকওভারফ্লো . com/q/8127920/30946 পছন্দ করি ।
jcollum

4
এটি সমস্ত স্থানের সাথে স্ট্রিংয়ে ব্যর্থ হয় ... সুতরাং ফাঁকা জন্য কাজ করে না
আরখিটেক

4
@ আর্কিটেক ফাঁকা খালি একই জিনিস নয়, তাই এটি কাজ করে।
jcollum

4
পড়ার যোগ্যতায় আমার স্বাদের জন্য খুব "চালাক"; ভাববেন না আমি এটি ব্যবহার করব, তবে ভাল কাজ
পান্ডাওয়ুড

37

এটি সম্পূর্ণ সমতুল্য নয়, তবে email?.lengthকেবল সত্যবাদী হবে যদি emailনন-শূন্য হয় এবং একটি শূন্য- .lengthসম্পত্তি থাকে। আপনি যদি notএই মানটি করেন তবে ফলাফলটি আপনার যেমন স্ট্রিং এবং অ্যারে উভয়ের জন্য যেমন চান তেমন আচরণ করা উচিত।

যদি emailথাকে nullবা না থাকে .lengthতবে email?.lengthতা মূল্যায়ন করবে nullযা মিথ্যা। যদি এটির একটি থাকে .lengthতবে এই মানটি তার দৈর্ঘ্যের সাথে মূল্যায়ন করবে, যা খালি থাকলে মিথ্যা হবে।

আপনার ফাংশন হিসাবে প্রয়োগ করা যেতে পারে:

eitherStringEmpty = (email, password) ->
  not (email?.length and password?.length)

4
@PePEtricick স্ট্রিং থেকে অ্যারে পার্থক্য সম্পর্কে প্রশ্ন জিজ্ঞাসা করেনি। এটি নাল মানগুলি এবং খালি খালি স্ট্রিংগুলি থেকে খালি স্ট্রিংয়ের পার্থক্য সম্পর্কে জিজ্ঞাসা করেছিল। আমার বক্তব্যটি ছিল কোডটি নাল মান এবং খালি অ্যারেগুলি শূন্য নয় এমন অ্যারে থেকে আলাদা করতে পারে তবে এটি প্রশ্নের ক্ষেত্রের বাইরে ছিল।
জেরেমি

তবুও, "হয় স্ট্রিংএম্পটি" আপনার দেওয়া পদ্ধতির একটি ভুল নাম।
পাইরোটেকনিক

14

এটি এমন একটি ক্ষেত্রে যেখানে "সত্যতা" কাজে আসে। এমনকি আপনার জন্য কোনও ফাংশন সংজ্ঞায়িত করার দরকার নেই:

test1 = not (email and password)

কেন এটি কাজ করে?

'0'       // true
'123abc'  // true
''        // false
null      // false
undefined // false

4
আমি ধরে নিলাম আপনি ইতিমধ্যে .trim()আপনার বৈধতা যুক্তির অংশ হিসাবে মানটির দিকে কল করেছেন। উত্তরটি সিএস সিনট্যাক্স সম্পর্কে আরও।
রিকার্ডো তোমাসি

5
unless email? and email
  console.log 'email is undefined, null or ""'

প্রথমে পরীক্ষা করুন যে ইমেল অপরিজ্ঞাত নয় এবং অস্তিত্বহীন অপারেটরটি বাতিল নয়, তবে আপনি যদি জানেন যে এটির উপস্থিতি and emailকেবলমাত্র ইমেল স্ট্রিং ফাঁকা থাকলেই মিথ্যা ফিরে আসবে।



1

যদি আপনাকে যাচাই করতে হয় যে সামগ্রীটি একটি স্ট্রিং, নাল নয় এবং অ্যারে নয়, একটি সহজ টাইপ তুলনা ব্যবহার করুন:

 if typeof email isnt "string"

typeof email isnt "string"উভয়ের পক্ষে মিথ্যা প্রত্যাবর্তন করে ''এবং'a'
jcollum

1

এটি করার একটি খুব সহজ উপায় এখানে একটি জিসফিল দেখায়।

মূলত আপনি কেবল এটি জাভাস্ক্রিপ্ট করুন:

var email="oranste";
var password="i";

if(!(email && password)){
    alert("One or both not set");        
}
else{
    alert("Both set");   
}

কফিসক্রিপ্টে:

email = "oranste"
password = "i"
unless email and password
  alert "One or both not set"
else
  alert "Both set"

আশা করি এটি কাউকে সাহায্য করবে :)


1

আমি মনে করি যে প্রশ্নটি যদি জিনিসটি বিদ্যমান থাকে তবে কোনও জিনিসে কোনও ফাংশন কল করার সবচেয়ে সহজ উপায়।

উদাহরণ স্বরূপ

car = {
  tires: 4,
  color: 'blue' 
}

আপনি রঙটি পেতে চান, তবে কেবল গাড়িটি উপস্থিত থাকলে ...

কফিসক্রিপ্ট:

 car?.color

জাভাস্ক্রিপ্ট অনুবাদ:

if (car != null) {
  car.color;
}

একে অস্তিত্বীয় অপারেটর বলা হয় http://coffeescript.org/docamentation/docs/grammar.html#section-63


খালি স্ট্রিং অস্তিত্বের পরীক্ষার জন্য সত্য ফিরে আসে।
jcollum

1

আমি বেশ নিশ্চিত যে @ তেজ'র উত্তর খালি স্ট্রিং চেক করার জন্য যথেষ্ট ভাল ছিল, আমি মনে করি আমাদের প্রায়শই এটি পরীক্ষা করা দরকার যে এটি বিদ্যমান আছে কি? এবং তারপরে আমাদের চেক করা দরকার 'এটি কি খালি? স্ট্রিং, অ্যারে এবং অবজেক্ট অন্তর্ভুক্ত করুন '

এটি করার জন্য কফি স্ক্রিপ্টের এটি সংক্ষিপ্ততর উপায়।

tmp? and !!tmp and !!Object.keys(tmp).length

আমরা যদি এই প্রশ্ন ক্রমটি রাখি তবে এটি এই আদেশ দ্বারা পরীক্ষা করা হবে 1. এটি কি বিদ্যমান? 2. খালি স্ট্রিং না? 3. খালি অবজেক্ট না?

সুতরাং অস্তিত্বের ক্ষেত্রেও যদি সমস্ত পরিবর্তনশীলগুলির জন্য কোনও সমস্যা ছিল না।


0

কোনও ভেরিয়েবলের মান আছে কি না তা পরীক্ষা করা সম্পর্কে এই উত্তরের ভিত্তিতে truthyআপনার কেবল একটি লাইন দরকার:

result = !email or !password

এবং আপনি নিজের জন্য এটি এই অনলাইন কফিস্ক্রিপ্ট কনসোলটিতে চেষ্টা করতে পারেন


0

পরিবর্তিত গৃহীত উত্তর passwordNotEmpty = !!passwordআপনি ব্যবহার করতে পারেন

passwordNotEmpty = if password then true else false

এটি একই ফলাফল দেয় (কেবল সিনট্যাক্সের মধ্যে পার্থক্য)।

প্রথম কলামে একটি মান, দ্বিতীয়টিতে ফলাফল if value:

0 - false
5 - true
'string' - true
'' - false
[1, 2, 3] - true
[] - true
true - true
false - false
null - false
undefined - false
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.