জাভা স্ক্রিপ্টের স্ট্রিংগুলিতে একটি নন-ব্রেকিং স্পেসকে কীভাবে উপস্থাপন করা হয়?


111

এটি দৃশ্যত কাজ করছে না:

X = $td.text();
if (X == ' ') {
X = '';
}

অবিচ্ছিন্ন স্থান বা জাভাস্ক্রিপ্ট পছন্দ করে না এমন এম্পারস্যান্ড সম্পর্কে এমন কিছু আছে?


1
কীভাবে কাজ করছেন না? আপনি এক্স এর সাথে কি করছেন?
এরিক ফোর্বস

ওহ, আমি যদি X = d td.html () বলি তবে এটি কার্যকর হয়।
ফিলিপ সেন

8
মনে রাখবেন যে .text()মার্কআপটি সরে গেছে, সুতরাং আমি বিশ্বাস করি না যে আপনি  একটি অ-চিহ্নআপ ফলাফলের সন্ধান করতে যাচ্ছেন ।
ব্র্যাড ক্রিস্টি

1
আমি এখানে ভুল হতে পারি, তবে পাঠ্য () এইচটিএমএল সত্ত্বাগুলি প্রসারিত করে না?
ডেনিস ক্রেমিনস্কি

@ ব্র্যাড - আপনার উত্তর দেওয়া উচিত ছিল। = পি
এরিক ফোর্বস

উত্তর:


253

 একটি HTML সত্তা। যখন করা হয় .text(), সমস্ত এইচটিএমএল সত্ত্বাগুলি তাদের চরিত্রের মানগুলিতে ডিকোড হয়।

সত্তা ব্যবহার করে তুলনা করার পরিবর্তে প্রকৃত কাঁচা অক্ষর ব্যবহার করে তুলনা করুন:

var x = td.text();
if (x == '\xa0') { // Non-breakable space is char 0xa0 (160 dec)
  x = '';
}

অথবা আপনি নিজের জাভাস্ক্রিপ্ট এড়িয়ে চলার আকারে নিজেই অক্ষর কোড থেকে চরিত্রটি তৈরি করতে পারেন:

var x = td.text();
if (x == String.fromCharCode(160)) { // Non-breakable space is char 160
  x = '';
}

সম্পর্কিত আরও তথ্য String.fromCharCodeএখানে পাওয়া যায়:

চারকোড থেকে - এমডিসি ডক সেন্টার

বিভিন্ন চরসেটের জন্য অক্ষর কোড সম্পর্কে আরও তথ্য এখানে পাওয়া যায়:

উইন্ডোজ-1252 চারসেট
ইউটিএফ -8 চারসেট


@ কোব্বল: খুব সত্য ... আসলে এটিই সহজ উপায়।
অ্যান্ড্রু মুর

3
কি দারুন. এই উত্তরটি এত জটিল, এটি অবশ্যই সঠিক হতে হবে! (আমি এবং জাভাস্ক্রিপ্ট তেল এবং জলের মতো)। তবে আমি যদি সহিংসভাবে নাড়া দিই তবে আমরা একসাথে মিশে যাব।
ফিলিপ সেন

সাধারণ স্পেসগুলি ভেঙে যাচ্ছে, সুতরাং এটি '\ x20', তবে ব্যবহার করা ভাল। '
প্যাট্রিক জাজালাপস্কি

7

মনে রাখবেন যে .text()মার্কআপটি সরে গেছে, সুতরাং আমি বিশ্বাস করি না যে আপনি  একটি অ-চিহ্নআপ ফলাফলের সন্ধান করতে যাচ্ছেন ।

একটি উত্তরে তৈরি ....

var p = $('<p>').html('&nbsp;');
if (p.text() == String.fromCharCode(160) && p.text() == '\xA0')
    alert('Character 160');

পরিবর্তনের পরিবর্তে মার্কআপের ASCII সমতুল্য উপস্থিত হওয়ায় একটি সতর্কতা দেখায়।


2
JQuery ব্যবহার করে আমরা দেখতে পাই যে $("<div>&nbsp;</div>").text().charCodeAt()দেয় 160(
এনবিএসের

2

ব্রাউজার যখন পৃষ্ঠাটি রেন্ডার করে তখন সেই সত্তাটি প্রতিনিধিত্ব করে এমন চরে রূপান্তরিত হয়। জেএস (jQuery) রেন্ডার্ড পৃষ্ঠাটি পড়ে, সুতরাং এটি কোনও পাঠ্য ক্রমের মুখোমুখি হবে না। যদি আপনি ডাবল এনকোডিং সত্তা হন তবে এটির সাথে এটির মুখোমুখি হওয়ার একমাত্র উপায়।


0

JQuery এর দস্তাবেজের জন্য text()বলেছেন

বিভিন্ন ব্রাউজারে এইচটিএমএল পার্সারে পরিবর্তনের কারণে ফেরত পাঠ্যটি নিউলাইন এবং অন্যান্য সাদা জায়গাতে পরিবর্তিত হতে পারে।

আমি $td.html()পরিবর্তে ব্যবহার করব ।


এটি আপনার পৃষ্ঠার মার্কআপে এইচটিএমএল ট্যাগ যুক্ত করবে। উদাহরণস্বরূপ, স্ট্রিং '<টেক্সট>' একটি এইচটিএমএল উপাদান হবে।
বার্হ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.