আমি এই প্রশ্নটি দেখেছি , তবে আমি কোনও জাভাস্ক্রিপ্টের সুনির্দিষ্ট উদাহরণ দেখতে পাইনি। string.Empty
জাভাস্ক্রিপ্টে কি কোনও সহজলভ্য আছে, বা এটি কেবল যাচাইয়ের ক্ষেত্রে ""
?
আমি এই প্রশ্নটি দেখেছি , তবে আমি কোনও জাভাস্ক্রিপ্টের সুনির্দিষ্ট উদাহরণ দেখতে পাইনি। string.Empty
জাভাস্ক্রিপ্টে কি কোনও সহজলভ্য আছে, বা এটি কেবল যাচাইয়ের ক্ষেত্রে ""
?
উত্তর:
যদি আপনি কেবল কোনও মান আছে কিনা তা পরীক্ষা করতে চান তবে আপনি এটি করতে পারেন
if (strValue) {
//do something
}
যদি আপনাকে শূন্যের উপরে খালি স্ট্রিংয়ের জন্য বিশেষভাবে যাচাই করা দরকার হয় তবে আমি মনে করব যে অপারেটরটি""
ব্যবহার করে===
(যার ফলে আপনি জানেন যে এটি একটি স্ট্রিং যার সাথে আপনি তুলনা করছেন) এটি পরীক্ষা করা আপনার সেরা বাজি is
if (strValue === "") {
//...
}
=== ''
বনাম .length
কোনও বোধগম্য উন্নতি দেখায়নি (এবং .length
কেবলমাত্র যদি আপনি স্ট্রিং
.length > 0
করা আসলে স্ট্রিং আক্ষরিকের সাথে তুলনা করার চেয়ে অনেক দ্রুত ! এই jscreen দেখুন
কোনও স্ট্রিং ফাঁকা আছে কিনা তা যাচাই করার জন্য, নাল বা অপরিজ্ঞাত আমি ব্যবহার করি:
function isEmpty(str) {
return (!str || 0 === str.length);
}
কোনও স্ট্রিং ফাঁকা, নাল বা অপরিজ্ঞাত আমি ব্যবহার করছি কিনা তা যাচাইয়ের জন্য:
function isBlank(str) {
return (!str || /^\s*$/.test(str));
}
কোনও স্ট্রিং ফাঁকা আছে কিনা তা যাচাই করার জন্য বা কেবল শ্বেত-স্থান রয়েছে:
String.prototype.isEmpty = function() {
return (this.length === 0 || !this.trim());
};
if (variable == constant value)
এবং আপনি যদি একটি '=' ভুলে যান তবে আপনি পরীক্ষার পরিবর্তে চলকটির ধ্রুবক মান নির্ধারণ করছেন। কোডটি এখনও কাজ করবে যেহেতু আপনি যদি কোনও ক্ষেত্রে পরিবর্তনশীল নির্ধারণ করতে পারেন। সুতরাং এই শর্তটি লেখার একটি নিরাপদ উপায় হ'ল ধ্রুবক মান এবং পরিবর্তনশীলকে বিপরীত করা। এইভাবে আপনি যখন আপনার কোডটি পরীক্ষা করেন আপনি একটি ত্রুটি দেখতে পাবেন (অ্যাসাইনমেন্টে অবৈধ বাম হাত)। শর্তে অ্যাসাইনমেন্টটি অস্বীকার করার জন্য আপনি জেএসহিন্টের মতো কিছু ব্যবহার করতে পারেন এবং আপনি যখন এটি লিখবেন তখন সতর্কতা অবলম্বন করতে পারেন।
/^\s*$/.test(str)
সত্যিই পঠনযোগ্য নয় - সম্ভবত সহজ কোড বা রেজেক্স ব্যবহার করে স্পেসগুলি অপসারণ করা আরও ভাল হবে? স্ট্যাকওভারফ্লো / প্রশ্নগুলি /6623231/… এবং স্ট্যাকওভারফ্লোও দেখুন / প্রশ্নগুলি 10800355/…
if blue is the sky
। দেখুন dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html
পূর্ববর্তী সমস্ত উত্তরগুলি ভাল তবে এটি আরও ভাল হবে। !!
( নয় ) অপারেটরটি ব্যবহার করুন ।
if(!!str){
// Some code here
}
বা প্রকারের ingালাই ব্যবহার করুন:
if(Boolean(str)){
// Code here
}
উভয়ই একই ফাংশন করে। ভেরিয়েবলটি বুলিয়ানতে টাইপকাস্ট করুন, যেখানে str
একটি পরিবর্তনশীল।
এটির false
জন্য ফিরে আসে null,undefined,0,000,"",false
।
এটি true
স্ট্রিং "0" এবং সাদা স্থান "" এর জন্য ফিরে আসে ।
if(str)
এবং if(!!str)
?
var any = (!!str1 && !!str2 && !!str3)
সেখানে যদি সেখানেও একটি সংখ্যা থাকে তবে ওরফে হ্যান্ডলিং
!!str.trim()
স্ট্রিংটি কেবল সাদা জায়গাগুলির তৈরি নয় তা নিশ্চিত করার জন্য।
Boolean(str)
এটি অনেক বেশি পঠনযোগ্য এবং "wtfish" কম।
আপনার যদি নিশ্চিত করতে হয় যে স্ট্রিংটি কেবল খালি জায়গাগুলির একগুচ্ছ নয় (আমি এটি ফর্ম বৈধতার জন্য ধরে নিচ্ছি) আপনাকে ফাঁকা স্থানগুলিতে একটি প্রতিস্থাপন করতে হবে।
if(str.replace(/\s/g,"") == ""){
}
if(str.match(/\S/g)){}
str.match(/\S/)
var trimLeft = /^\s+/, trimRight = /\s+$/;
আমি ব্যবহার করি:
function empty(e) {
switch (e) {
case "":
case 0:
case "0":
case null:
case false:
case typeof(e) == "undefined":
return true;
default:
return false;
}
}
empty(null) // true
empty(0) // true
empty(7) // false
empty("") // true
empty((function() {
return ""
})) // false
typeof
মধ্যে switch
আমার জন্য কাজ করে নি। আমি একটি if (typeof e == "undefined")
পরীক্ষা যোগ করেছি এবং এটি কাজ করে। কেন?
case undefined:
পরিবর্তে ব্যবহার করতে পারি case typeof(e) == "undefined":
?
আপনি লড্যাশ ব্যবহার করতে পারেন : _.আইএসপি (মান)।
মনে হচ্ছে একটি ক্ষেত্রে অনেক কভার {}
, ''
, null
, undefined
, ইত্যাদি
তয় এইটা সবসময়ের জন্য ফেরৎ true
জন্য Number
ধরণ জাভাস্ক্রিপ্ট আদিম ধরনের তথ্য মত _.isEmpty(10)
বা _.isEmpty(Number.MAX_VALUE)
উভয় রিটার্ন true
।
_.isEmpty(" "); // => false
" "
খালি না থাকে। _.isEmpty("");
সত্য ফিরে।
ফাংশন:
function is_empty(x)
{
return (
(typeof x == 'undefined')
||
(x == null)
||
(x == false) //same as: !x
||
(x.length == 0)
||
(x == "")
||
(x.replace(/\s/g,"") == "")
||
(!/[^\s]/.test(x))
||
(/^\s*$/.test(x))
);
}
PS: জাভাস্ক্রিপ্টে, লাইন ব্রেক পরে ব্যবহার করবেন না return
;
if
বিবৃতিতে রাখা কোনও অর্থবোধ করে না ।
চেষ্টা করুন:
if (str && str.trim().length) {
//...
}
str.trim().length
str.trim()
আমার নিজের পরীক্ষার ফলাফল অনুযায়ী প্রায় 1% এর চেয়ে দ্রুত কাজ করবে ।
if (!str) { ... }
আমি সবচেয়ে দক্ষ পদ্ধতি সম্পর্কে খুব বেশি চিন্তা করব না । আপনার অভিপ্রায়টি সর্বাধিক স্পষ্ট যা ব্যবহার করুন। আমার জন্য সাধারণত strVar == ""
।
কনস্ট্যান্টিনের মন্তব্য অনুসারে , যদি strVar কিছুতে যদি পূর্ণসংখ্যার 0 মান সমাপ্ত করতে পারে, তবে তা প্রকৃতপক্ষে সেই উদ্দেশ্যগুলির মধ্যে একটি হতে পারে।
===
করা আরও ভাল। strVar
খালি স্ট্রিং হলে এটি সত্য হয় returns
প্রচুর উত্তর, এবং বিভিন্ন সম্ভাবনা!
দ্রুত এবং সহজ বাস্তবায়নের জন্য সন্দেহ ছাড়াই বিজয়ী হ'ল: if (!str.length) {...}
তবে অন্যান্য অনেক উদাহরণ পাওয়া যায়। এটি সম্পর্কে সর্বোত্তম কার্যকরী পদ্ধতি, আমি পরামর্শ দেব:
function empty(str)
{
if (typeof str == 'undefined' || !str || str.length === 0 || str === "" || !/[^\s]/.test(str) || /^\s*$/.test(str) || str.replace(/\s/g,"") === "")
{
return true;
}
else
{
return false;
}
}
কিছুটা অতিরিক্ত, আমি জানি।
str.length === 0
আনুষ্ঠানিক পরামিতি নেই যে কোনও ফাংশনের জন্য সত্য ফিরে আসে।
var a;
উপস্থিত আছে তা পরীক্ষা করুনfalse spaces
মানটি ট্রিম করে ফেলুন , তারপরে পরীক্ষা করুনemptiness
if ((a)&&(a.trim()!=''))
{
// if variable a is not empty do this
}
আমি 18 টি নির্বাচিত সমাধানের জন্য ম্যাকোস ভি 10.13.6 (উচ্চ সিয়েরা) এর উপর পরীক্ষা নিই । সমাধানগুলি কিছুটা পৃথকভাবে কাজ করে (কর্নার-কেস ইনপুট ডেটার জন্য) যা নীচে স্নিপেটে উপস্থাপিত হয়েছিল।
উপসংহার
!str
, ==
, ===
এবং length
সব ব্রাউজারের জন্য দ্রুত (এ, বি, সি, জি, আমি জে)test
, replace
) এবং charAt
সমস্ত ব্রাউজারের জন্য সবচেয়ে ধীর হয় (এইচ, এল, এম, পি)নীচের স্নিপেটে আমি পৃথক ইনপুট পরামিতি ব্যবহার করে নির্বাচিত 18 পদ্ধতির ফলাফলগুলির সাথে তুলনা করি
""
"a"
" "
- খালি স্ট্রিং, অক্ষরের সাথে স্ট্রিং এবং স্পেস সহ স্ট্রিং[]
{}
f
- অ্যারে, অবজেক্ট এবং ফাংশন0
1
NaN
Infinity
- সংখ্যাtrue
false
- বুলিয়ানnull
undefined
সমস্ত পরীক্ষিত পদ্ধতিগুলি সমস্ত ইনপুট ক্ষেত্রে সমর্থন করে না।
এবং তারপরে সমস্ত পদ্ধতির জন্য আমি str = ""
ব্রাউজারগুলি Chrome v78.0.0, সাফারি v13.0.4, এবং ফায়ারফক্স v71.0.0- এর জন্য গতি পরীক্ষার কেস সম্পাদন করি - আপনি এখানে আপনার মেশিনে পরীক্ষা চালাতে পারেন
আমি সাধারণত এই জাতীয় কিছু ব্যবহার করি,
if (!str.length) {
// Do something
}
typeof variable != "undefined"
খালি কিনা তা পরীক্ষা করার আগে পরীক্ষা করতে পারেন could
আমি এমন কোনও উত্তর লক্ষ্য করিনি যা একটি স্ট্রিংয়ে নাল অক্ষরের সম্ভাবনা বিবেচনা করে। উদাহরণস্বরূপ, যদি আমাদের কাছে নাল অক্ষরের স্ট্রিং থাকে:
var y = "\0"; // an empty string, but has a null character
(y === "") // false, testing against an empty string does not work
(y.length === 0) // false
(y) // true, this is also not expected
(y.match(/^[\s]*$/)) // false, again not wanted
এর শ্লীলতা পরীক্ষা করার জন্য কেউ এই জাতীয় কিছু করতে পারে:
String.prototype.isNull = function(){
return Boolean(this.match(/^[\0]*$/));
}
...
"\0".isNull() // true
এটি একটি নাল স্ট্রিং এবং খালি স্ট্রিংয়ে কাজ করে এবং এটি সমস্ত স্ট্রিংয়ের জন্য অ্যাক্সেসযোগ্য। এছাড়াও, এটি অন্যান্য জাভাস্ক্রিপ্ট খালি বা শ্বেতস্পেস অক্ষর (অর্থাত্ ননব্রেকিং স্পেস, বাইট ক্রম চিহ্ন, লাইন / অনুচ্ছেদ বিভাজক ইত্যাদি) ধারণ করে বাড়ানো যেতে পারে।
ইতিমধ্যে আমাদের একটি ফাংশন থাকতে পারে যা শূন্য, অপরিজ্ঞাত, '', '', {}, [] এর মতো সমস্ত 'শূন্যপদ' পরীক্ষা করে । সুতরাং আমি এই লিখেছি।
var isEmpty = function(data) {
if(typeof(data) === 'object'){
if(JSON.stringify(data) === '{}' || JSON.stringify(data) === '[]'){
return true;
}else if(!data){
return true;
}
return false;
}else if(typeof(data) === 'string'){
if(!data.trim()){
return true;
}
return false;
}else if(typeof(data) === 'undefined'){
return true;
}else{
return false;
}
}
কেস এবং ফলাফল ব্যবহার করুন।
console.log(isEmpty()); // true
console.log(isEmpty(null)); // true
console.log(isEmpty('')); // true
console.log(isEmpty(' ')); // true
console.log(isEmpty(undefined)); // true
console.log(isEmpty({})); // true
console.log(isEmpty([])); // true
console.log(isEmpty(0)); // false
console.log(isEmpty('Hey')); // false
স্ট্রিং খালি কিনা তা যাচাই করার জন্য এখন স্ট্রিং.এম্পটির মতো সরাসরি পদ্ধতি নেই। তবে আপনার কোডে আপনি খালি স্ট্রিংয়ের জন্য একটি র্যাপার চেক ব্যবহার করতে পারেন:
// considering the variable in which your string is saved is named str.
if (str && str.length>0) {
// Your code here which you want to run if the string is not empty.
}
এটি ব্যবহার করে আপনিও নিশ্চিত করতে পারেন যে স্ট্রিং অপরিজ্ঞাত বা নালও নয়। মনে রাখবেন, অপরিজ্ঞাত, নাল এবং খালি তিনটি ভিন্ন জিনিস।
let rand = ()=>Math.random()
, তারপর rand && rand.length > 0)
মিথ্যা প্রত্যাবর্তন করুন, তবে স্পষ্টভাবে fn "খালি" নয়। অর্থাৎ এটি কোনও ফাংশনের জন্য মিথ্যা ফিরিয়ে দেয় যার কোনও ফর্ম্যাট প্যারামিটার নেই।
Math.random()
একটি সংখ্যা দেয়, স্ট্রিংকে না। এবং এই উত্তরটি স্ট্রিং সম্পর্কে। ;-)
এই সমস্ত উত্তর সুন্দর।
তবে আমি নিশ্চিত হতে পারি না যে পরিবর্তনশীল একটি স্ট্রিং, কেবল ফাঁকা স্থান নেই (এটি আমার পক্ষে গুরুত্বপূর্ণ) এবং এতে '0' (স্ট্রিং) থাকতে পারে।
আমার সংস্করণ:
function empty(str){
return !str || !/[^\s]+/.test(str);
}
empty(null); // true
empty(0); // true
empty(7); // false
empty(""); // true
empty("0"); // false
empty(" "); // true
জেসফিডেলে নমুনা ।
empty(0)
এবং empty(7)
একই মানটি ফেরত দেওয়া উচিত।
empty("0")
অবশ্যই ফিরে আসতে হবে false
(কারণ এটি একটি খালি স্ট্রিং নয়) তবে empty(0)
অবশ্যই true
খালি থাকার কারণে ফিরে আসতে হবে :)
empty
এই ক্ষেত্রে একটি বিভ্রান্তিমূলক নাম।
empty
ভাল। খালি ফাংশন জন্য পিএইচপি ডক্সে : এবং এই ফাংশন Returns FALSE if var exists and has a non-empty, non-zero value. Otherwise returns TRUE.
মধ্যে পার্থক্য PHP
- যে স্ট্রিং '0'
খালি হিসাবে চিহ্নিত করা হবে না।
empty
এটি একটি ভুল এবং বিভ্রান্তিমূলক নাম। এটি আকর্ষণীয় যে পিএইচপি-রও একটি খারাপ নামযুক্ত empty
ফাংশন রয়েছে তবে পিএইচপি-র ব্যর্থতার জাভাস্ক্রিপ্টের সাথে কোনও সম্পর্ক নেই।
আমি এখানে একটি ভাল উত্তর দেখতে পাইনি (কমপক্ষে আমার পক্ষে উপযুক্ত কোনও উত্তর নেই)
তাই আমি নিজেই উত্তর দেওয়ার সিদ্ধান্ত নিয়েছি:
value === undefined || value === null || value === "";
এটি অপরিশোধিত কিনা তা আপনার চেক করা শুরু করতে হবে। অন্যথায় আপনার পদ্ধতিটি বিস্ফোরিত হতে পারে এবং তারপরে এটি শূন্য স্ট্রিংয়ের সমান বা সমান কিনা তা আপনি পরীক্ষা করতে পারেন।
আপনি থাকতে পারবেন না !! বা কেবলমাত্র if(value)
যদি আপনি পরীক্ষা 0
করে থাকেন যে এটি আপনাকে একটি মিথ্যা উত্তর দেয় (0 টি মিথ্যা)।
এই বলে, এটিকে এমন পদ্ধতিতে গুটিয়ে রাখুন:
public static isEmpty(value: any): boolean {
return value === undefined || value === null || value === "";
}
PS: আপনার টাইপফোন পরীক্ষা করার দরকার নেই , কারণ এটি পদ্ধতিতে প্রবেশের আগেই এটি বিস্ফোরিত হবে এবং ছোঁড়া হবে
এটা চেষ্টা কর
str.value.length == 0
"".value.length
একটি ত্রুটি ঘটায়। এটি হওয়া উচিতstr.length === 0
TypeError
যদি str
সমান undefined
বাnull
আপনি এটি সহজেই জাভাস্ক্রিপ্টের নেটিভ স্ট্রিং অবজেক্টে যুক্ত করতে পারেন এবং এটিকে বারবার পুনরায়
ব্যবহার করতে পারেন ... খালি স্ট্রিং চেক করতে চাইলে নীচের কোডের মতো সাধারণ কিছু আপনার পক্ষে কাজ করতে পারে :''
String.prototype.isEmpty = String.prototype.isEmpty || function() {
return !(!!this.length);
}
অন্যথায় আপনি যদি ''
খালি স্ট্রিং এবং ' '
স্পেস সহ উভয়ই পরীক্ষা trim()
করতে চান তবে নীচের কোডের মতো কিছু যুক্ত করে আপনি এটি করতে পারেন:
String.prototype.isEmpty = String.prototype.isEmpty || function() {
return !(!!this.trim().length);
}
এবং আপনি এটিকে এটি কল করতে পারেন:
''.isEmpty(); //return true
'alireza'.isEmpty(); //return false
!(!!this.length)
শুধু !this
(বা !this.trim()
দ্বিতীয় বিকল্পের জন্য) না করে করার কী লাভ ? একটি শূন্য দৈর্ঘ্যের স্ট্রিং ইতিমধ্যে জালিয়াতিপূর্ণ, প্রথম বন্ধনীগুলি অপ্রয়োজনীয় এবং এটিকে তিনবার উপেক্ষা করা একে একবারে উপেক্ষা করার মতোই।
আপনি যদি পরীক্ষক ফাংশনে একটি স্ট্রিং এবং নন-খালি / নাল মান পাস করেন তবে কী হয় তা নিয়ে আমি কিছু গবেষণা করেছি। অনেকেই জানেন, (0 == "") জাভাস্ক্রিপ্টে সত্য, তবে যেহেতু 0 একটি মান এবং খালি বা নাল নয়, আপনি এটির জন্য পরীক্ষা করতে চাইতে পারেন।
নিম্নলিখিত দুটি ফাংশনগুলি কেবল অপরিজ্ঞাত, নাল, খালি / সাদা স্থানের মানগুলির জন্য সত্য এবং অন্য সমস্ত কিছুর জন্য মিথ্যা, যেমন সংখ্যা, বুলিয়ান, অবজেক্টস, এক্সপ্রেশন ইত্যাদি return
function IsNullOrEmpty(value)
{
return (value == null || value === "");
}
function IsNullOrWhiteSpace(value)
{
return (value == null || !/\S/.test(value));
}
আরও জটিল উদাহরণ বিদ্যমান, তবে এগুলি সহজ এবং ধারাবাহিক ফলাফল দেয়। অপরিবর্তিত জন্য পরীক্ষা করার দরকার নেই, কারণ এটি (মান == নাল) চেক অন্তর্ভুক্ত। আপনি এই জাতীয় স্ট্রিংগুলিতে তাদের যুক্ত করে সি # আচরণের নকল করতে পারেন :
String.IsNullOrEmpty = function (value) { ... }
আপনি এটিকে স্ট্রিংস প্রোটোটাইপে রাখতে চান না, কারণ স্ট্রিং-শ্রেণীর উদাহরণটি যদি নਾਲ হয় তবে এটি ত্রুটিযুক্ত হবে:
String.prototype.IsNullOrEmpty = function (value) { ... }
var myvar = null;
if (1 == 2) { myvar = "OK"; } // Could be set
myvar.IsNullOrEmpty(); // Throws error
আমি নিম্নলিখিত মান অ্যারে দিয়ে পরীক্ষা করেছি। সন্দেহ থাকলে আপনার ফাংশন পরীক্ষা করতে আপনি এটি লুপ করতে পারেন।
// Helper items
var MyClass = function (b) { this.a = "Hello World!"; this.b = b; };
MyClass.prototype.hello = function () { if (this.b == null) { alert(this.a); } else { alert(this.b); } };
var z;
var arr = [
// 0: Explanation for printing, 1: actual value
['undefined', undefined],
['(var) z', z],
['null', null],
['empty', ''],
['space', ' '],
['tab', '\t'],
['newline', '\n'],
['carriage return', '\r'],
['"\\r\\n"', '\r\n'],
['"\\n\\r"', '\n\r'],
['" \\t \\n "', ' \t \n '],
['" txt \\t test \\n"', ' txt \t test \n'],
['"txt"', "txt"],
['"undefined"', 'undefined'],
['"null"', 'null'],
['"0"', '0'],
['"1"', '1'],
['"1.5"', '1.5'],
['"1,5"', '1,5'], // Valid number in some locales, not in JavaScript
['comma', ','],
['dot', '.'],
['".5"', '.5'],
['0', 0],
['0.0', 0.0],
['1', 1],
['1.5', 1.5],
['NaN', NaN],
['/\S/', /\S/],
['true', true],
['false', false],
['function, returns true', function () { return true; } ],
['function, returns false', function () { return false; } ],
['function, returns null', function () { return null; } ],
['function, returns string', function () { return "test"; } ],
['function, returns undefined', function () { } ],
['MyClass', MyClass],
['new MyClass', new MyClass()],
['empty object', {}],
['non-empty object', { a: "a", match: "bogus", test: "bogus"}],
['object with toString: string', { a: "a", match: "bogus", test: "bogus", toString: function () { return "test"; } }],
['object with toString: null', { a: "a", match: "bogus", test: "bogus", toString: function () { return null; } }]
];
কোনও isEmpty()
পদ্ধতি নেই, আপনাকে প্রকার এবং দৈর্ঘ্যের জন্য পরীক্ষা করতে হবে:
if (typeof test === 'string' && test.length === 0){
...
প্রকার চেক অর্ডার রানটাইম ত্রুটিগুলি এড়ানোর যখন প্রয়োজন হয় test
হয় undefined
বা null
।
হোয়াইটস্পেস স্ট্রিং উপেক্ষা করে, আপনি নাল, খালি এবং অপরিজ্ঞাত পরীক্ষা করতে এটি ব্যবহার করতে পারেন:
var obj = {};
(!!obj.str) // Returns false
obj.str = "";
(!!obj.str) // Returns false
obj.str = null;
(!!obj.str) // Returns false
এটি সংক্ষিপ্ত এবং এটি অপরিজ্ঞাত বৈশিষ্ট্যের জন্য কাজ করে, যদিও এটি সর্বাধিক পঠনযোগ্য নয়।