কোনও ভেরিয়েবল নাল বা ফাঁকা স্ট্রিং বা জাভাস্ক্রিপ্টের সমস্ত সাদা স্থান আছে কিনা তা কীভাবে পরীক্ষা করবেন?


102

ভেরিয়েবলটি নাল কিনা বা সমস্ত ফাঁকা স্থান রয়েছে বা খালি ("") আছে কিনা তা পরীক্ষা করে দেখার দরকার।

আমার কাছে নিম্নলিখিতগুলি রয়েছে তবে এটি কার্যকর নয়:

var addr;
addr = "  ";

if (!addr) {
    // pull error 
}

আমি যদি নিম্নলিখিতটি করি তবে এটি কাজ করে:

if (addr) {

}​

আমার যা দরকার তা হ'ল সি # পদ্ধতির মতো String.IsNullOrWhiteSpace(value)


4
আসলেই বলতে has *any* empty spacesচাও? না মানে is all empty spaces?
ম্যাডব্রেকস

4
অপরিশোধিত সম্পর্কে কি?
কোডডোড

উত্তর:


139

একটি নন-জিক্যুরি সমাধান যা আরও ঘনিষ্ঠভাবে নকল করে IsNullOrWhiteSpaceতবে কেবল শূন্য, খালি বা সমস্ত স্থান শনাক্ত করতে:

function isEmptyOrSpaces(str){
    return str === null || str.match(/^ *$/) !== null;
}

... তাহলে:

var addr = '  ';

if(isEmptyOrSpaces(addr)){
    // error 
}

* সম্পাদনা করুন * দয়া করে নোট করুন যে বিকল্পটি নির্দিষ্ট করে:

আমার কোনও ভেরটি নাল কিনা তা দেখতে বা খালি জায়গাগুলি আছে বা সেই বিষয়ে খালি ফাঁকা আছে কিনা তা পরীক্ষা করে দেখার দরকার ।

সুতরাং হ্যাঁ করার সময়, "সাদা স্থান" নাল, স্থানগুলি বা ফাঁকা চেয়ে আরও বেশি জড়িয়ে আছে আমার উত্তরটি অপের নির্দিষ্ট প্রশ্নের উত্তর দেওয়ার উদ্দেশ্যে intended এটি গুরুত্বপূর্ণ কারণ বিকল্পগুলি উদাহরণস্বরূপ ট্যাবগুলির মতো জিনিসগুলি ধরতে না পারে।


66
হোয়াইটস্পেসে ট্যাব, অন্যান্য ধরণের স্পেস ইত্যাদি অন্তর্ভুক্ত /^\s*$/থাকতে পারে those এগুলি ধরার জন্যও Use
অনুদান দিন

4
@ গ্রান্ট আমি উদ্দেশ্যমূলকভাবে এটি করতে পারিনি কারণ ওপ বলেছে "আমার কোনও পরীক্ষা নালাগুলি রয়েছে কিনা তা খতিয়ে দেখার দরকার আছে বা এই বিষয়টির জন্য খালি জায়গা আছে কিনা"
ম্যাডব্রেকস

4
ম্যাচ () এর পরিবর্তে টেস্ট () ব্যবহারের বিষয়ে কী? রিটার্ন str === নাল || (/ ^ * $ /)। পরীক্ষা (আরআর);
মারিও লেভেরো

4
পছন্দ করুন testআমি স্মরণ হিসাবে দ্রুত হয়।
ম্যাডব্রেকস

10
@ ম্যাডব্র্যাকস অপ্টে বলেছে "আমার যা দরকার তা হল এই সি # পদ্ধতির মতো কিছু: স্ট্রিং.আইএসনুলআরওহাইটস্পেস"। এই পদ্ধতিটি ট্যাবগুলিকে সাদা স্থান হিসাবে বিবেচনা করে।
সাবসি

25
if (addr == null || addr.trim() === ''){
  //...
}

একটি nullতুলনাও ধরবে undefinedfalseআপনিও যদি পাস করতে চান তবে ব্যবহার করুন !addr। পিছনে ব্রাউজারের জন্য সামঞ্জস্যের addr.trim()জন্য স্বাপ $.trim(addr)


4
"আপনি যদি ভুলটিও পাস করতে চান তবে ব্যবহার করুন!" - addrশূন্য হলে ভেঙে যায় ।
ম্যাডব্রেকস

4
কেন প্রথম এক ==এবং দ্বিতীয় মিল ===?
সর্বোচ্চ

"সংযোজক == নাল" ব্যবহার করাও অপরিবর্তিত মিলবে। আপনি যদি "সংযোজক === নাল" ব্যবহার করেন তবে এটি কেবল নালার সাথে মেলে। দ্বিতীয় ম্যাচের জন্য === ব্যবহার করে কেবল খালি স্ট্রিংয়ে ম্যাচকে চাপ দেয়।
এড ডাউনস

19

তুমি ব্যবহার করতে পার if(addr && (addr = $.trim(addr)))

এটি addrচেকটি সম্পাদন করার সময় কেবল এটিকে উপেক্ষা করার পরিবর্তে যে কোনও বাহ্যিক শ্বেতস্পেসকে বাস্তবে সরিয়ে ফেলার সুবিধা রয়েছে ।

তথ্যসূত্র: http://api.jquery.com/jQuery.trim/


4
ধরে নিচ্ছি, অবশ্যই অপশনটি সাদা স্থান সরিয়ে নিতে চায় । :)
ম্যাডব্রেকস

4
addrউদাহরণস্বরূপ একটি পূর্ণসংখ্যার সাথে অন্তর্নিহিত করা হলে আপনার উত্তর একটি মিথ্যা ইতিবাচক প্রত্যাবর্তন করবে ।
ম্যাডব্রেকস

আরও তথ্য ব্যতীত আমি ধরে নিই যে ভারগুলি সর্বদা একটি স্ট্রিং থাকে যদি এটি নাল / অপরিজ্ঞাত না হয়।
চোরমাস্টার

4
ওপ বলেন, "ভেরিয়েবল কিনা তা পরীক্ষা করুন ...", এবং তাঁর উদাহরণটি দেখায় যে পরিবর্তনশীলটি একটি স্ট্রিং, তবে আমি ধারণা করব যে ধারণাটি প্রদর্শন করার জন্য এটি কেবল একটি উদাহরণ।
ম্যাডব্রেকস

5
isEmptyOrSpaces(str){
    return !str || str.trim() === '';
}

4
বিদ্যমান উত্তরগুলি নকল করার দরকার আছে কি? অথবা আপনি পূর্বের উত্তরগুলিতে এমন কোনও পরিবর্তন করেছেন যা প্রাসঙ্গিক পার্থক্য তৈরি করে?
নিকো হােস

4

আপনি নিজের পদ্ধতি সমান তৈরি করতে পারেন

String.IsNullOrWhiteSpace(value)

function IsNullOrWhiteSpace( value) {

    if (value== null) return true;

    return value.replace(/\s/g, '').length == 0;
}

4
\sখালি জায়গাগুলির চেয়ে বেশি মিলছে
ম্যাডব্রেকস

4

সাদা স্থানের জন্য পরীক্ষা করার সময় সি # পদ্ধতিটি ইউনিকোড স্ট্যান্ডার্ডটি ব্যবহার করে। হোয়াইট স্পেসে স্পেস, ট্যাবস, ক্যারেজ রিটার্ন এবং অন্যান্য অনেকগুলি প্রিন্টিং অক্ষর কোড অন্তর্ভুক্ত রয়েছে। সুতরাং আপনি ব্যবহার করা ভাল:

function isNullOrWhiteSpace(str){
    return str == null || str.replace(/\s/g, '').length < 1;
}

ওপি স্পষ্টতই বলে দেয় যে লক্ষ্যটি স্পেস স্পেস নয়, স্পেসগুলি পরীক্ষা করা ।
ম্যাডব্রেকস

4
ওপ বলেন, "আমার যা দরকার তা হল এই সি # পদ্ধতির মতো কিছু: স্ট্রিং.আইএসনুলআরওহাইটস্পেস (মান)"। এবং যদি আপনি কেবল ফাঁকা জায়গাগুলি পরীক্ষা করে থাকেন তবে আপনার ফাংশনটির নাম নুলরওহাইটস্পেসের নাম রাখবেন না বরং এর পরিবর্তে নামটি ইসনুলআরএএমটিপি করুন।
জোওও লেমে

C # পদ্ধতিটি স্ট্রিংটি নাল ছিল কিনা তা খতিয়ে দেখার জন্য কাজ করবে বা স্পেসগুলির একটি সিরিজ। ওপি এমন কিছু "চাই" চেয়েছিল, তবে স্পেসগুলির জন্য বিশেষভাবে পরীক্ষা করতে।
ম্যাডব্রেকস


4

পুরানো প্রশ্ন, তবে আমি মনে করি এটি একটি সহজ উত্তর দাবি করে।

আপনি সহজভাবে করতে পারেন:

var addr = "  ";

if (addr && addr.trim()) {

    console.log("I'm not null, nor undefined, nor empty string, nor string composed of whitespace only.");

}

4
এটা করা উচিত নয় addr && addr.trim()? একটি একক দিয়ে &এটি আমার পক্ষে কাজ করে না তবে এটি কাজ করে &&
মার্কভি 12

0

এটি চেষ্টা করে দেখুন

/**
  * Checks the string if undefined, null, not typeof string, empty or space(s)
  * @param {any} str string to be evaluated
  * @returns {boolean} the evaluated result
*/
function isStringNullOrWhiteSpace(str) {
    return str === undefined || str === null
                             || typeof str !== 'string'
                             || str.match(/^ *$/) !== null;
}

আপনি এটি ব্যবহার করতে পারেন

isStringNullOrWhiteSpace('Your String');



0

আপনি এটি চেষ্টা করতে পারেন:

do {
   var op = prompt("please input operatot \n you most select one of * - / *  ")
} while (typeof op == "object" || op == ""); 
// execute block of code when click on cancle or ok whthout input
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.