কোন অক্ষর একটি পাঠ্য অঞ্চলে একটি নতুন লাইন উপস্থাপন করে


88

কেবল দ্রুত, তবে নিশ্চিত করতে চাই যে আমি ক্রস প্ল্যাটফর্মের বৈচিত্রগুলি ধরছি।

আমি কোনও পাঠ্য অঞ্চলে প্রবেশ করা নতুন রেখাগুলিকে একটি [কমা] হিসাবে রূপান্তর করতে চাই, যাতে আউটপুটটিকে একটি লাইনে উপস্থাপন করা যায়, আমার প্রশ্ন ...

বর্তমানে, গুগল ক্রোম থেকে প্রেরণ করা, আমি যখন মানটি দেখি, তখন এটি \r\nনতুন লাইনের জন্য ব্যবহার করে দেখি । আমি যদি প্রতিস্থাপন \r\nকরি তবে আমি জানি এটি উইন্ডোজ on-এ ক্রোমের জন্য কাজ করবে, তবে অন্যান্য প্ল্যাটফর্মগুলির কী, অন্যান্য ব্রাউজারগুলি কোনও পাঠ্য অঞ্চলের ভিতরে একটি নতুন লাইন হিসাবে প্রবেশ করিয়ে দেবে তাতে কী তারতম্য রয়েছে?


4
সরলকরণের জন্য: সমস্ত ব্রাউজারগুলি কেবল কোনও পাঠ্য অঞ্চলে প্রবেশ করা একটি নতুন লাইন উপস্থাপন করতে কেবল '\ r \ n' প্রেরণ করে (আমি প্রোগ্রামক্রমে মানটি তৈরি করছি না, এটি কেবল তাদের ব্রাউজারের ব্যবহারকারী দ্বারা তৈরি করা হয়েছে)
নিনজানেল

উত্তর:


106

এইচটিএমএল স্পেসিফিকেশন দ্বারা, ব্রাউজারগুলির সিআর এলএফ ( \r\n) এর সাথে ইউজার ইনপুটটিতে লাইন ব্রেকগুলি ক্যানোনিকালাইজ করা প্রয়োজন এবং আমি মনে করি না যে কোনও ব্রাউজার এটি ভুল হয়ে যায়। রেফারেন্স: ধারা 17.13.4 এইচটিএমএল 4.01 অনুচ্ছেদে ফর্ম সামগ্রী প্রকার

এইচটিএমএল 5 খসড়ায় পরিস্থিতি আরও জটিল, যেহেতু তারা একটি ব্রাউজারের অভ্যন্তরীণ প্রক্রিয়াগুলি নিয়েও ডিল করে, কেবল ফর্মটি জমা দেওয়ার সময় সার্ভার-সাইড ফর্ম হ্যান্ডলারের কাছে প্রেরিত ডেটা নয় not তাদের (এবং ব্রাউজার অনুশীলন) অনুসারে, textareaউপাদানটির মানটি তিনটি রূপে বিদ্যমান:

  1. ব্যবহারকারীর দ্বারা প্রবেশ করা কাঁচা মান, অস্বাভাবিক; এতে সিআর, এলএফ, বা সিআর এলএফ জোড়া থাকতে পারে;
  2. অভ্যন্তরীণ মান, "এপিআই মান" বলা হয়, যেখানে লাইন ব্রেকগুলি এলএফ-তে সাধারণ করা হয় (কেবল);
  3. জমা দেওয়ার মান, যেখানে লাইন ব্রেকগুলি সিআর এলএফ জোড়গুলিতে ইন্টারনেট কনভেনশন অনুসারে স্বাভাবিক করা হয়।

4
এইচটিএমএল 5 বৈশিষ্ট: w3.org/html/wg/drafts/html/CR/forms.html#the-textarea-element : the user agent should allow the user to edit, insert, and remove text, and to insert and remove line breaks in the form of "LF" (U+000A) characters
কমফ্রিচ

ধন্যবাদ, আপনি আমার দিন তৈরি করেছেন! আমি কেবল বিভ্রান্ত হয়ে পড়েছিলাম কারণ যখন আমি
টেক্সারিয়া থেকে ওএসএক্স

4
আরেকটি প্রশ্ন হ'ল আপনি যখন টেক্সারিয়ার "দৈর্ঘ্য" পান, তখন এটি সিআর এলএফকে কেবল একটি চরিত্র হিসাবে গণ্য করে তবে আপনি যখন সার্ভারের দিকে পরীক্ষা করেন (উদাহরণস্বরূপ, পিএইচপি
স্ট্রেন

4
@ উপরের কমফ্রিকার লিঙ্কটি আজ ভেঙে গেছে, w3.org/TR/html5/forms.html#the-textarea-element
গ্লেন

@ স্টারিকোভস, আমি মনে করি অভ্যন্তরীণ মানটির সাথে এটির উত্তর দেওয়া হয়েছে , "এপিআই মান" বলা হয়, যেখানে লাইন ব্রেকগুলি এলএফ (কেবলমাত্র) এ স্বাভাবিক করা হয়; অংশ। আপনি যা একটি চরিত্র হিসাবে (যেমন \n) দেখেন , সম্ভবত এটি "অভ্যন্তরীণ এপিআই" সরবরাহ করে। কোনও রেফারেন্স নেই, এটি কেবল সাধারণ জ্ঞানের ভিত্তিতে আমার অনুমানের ভিত্তি।
দিমিত্রি করোলিভ

12

ওয়েব ফর্মগুলিতে টেক্সারিয়াস সম্পর্কে বিশেষভাবে কথা বলা, সমস্ত টেক্সারিয়ের জন্য, সমস্ত প্ল্যাটফর্মে, \r\nকাজ করবে।

আপনি যদি অন্য কিছু ব্যবহার করেন তবে উইন্ডোজ প্ল্যাটফর্মগুলিতে কাটা এবং পেস্ট করার কারণে সমস্যা তৈরি হবে।

ফর্মটি জমা দেওয়ার পরে লাইন ব্রেকগুলি উইন্ডো ব্রাউজারগুলির দ্বারা স্বীকৃত হবে, তবে আপনি যদি ফর্মটি \nলাইনব্রেক সহ ব্রাউজারে প্রেরণ করেন তবে আপনি দেখতে পাবেন যে টেক্সটটি নোটপ্যাড এবং টেক্সটরিয়ার উদাহরণস্বরূপ সঠিকভাবে অনুলিপি এবং আটকানো হবে না।

মজার বিষয় হল, ইউনিক্স লাইন শেষের কনভেনশন হওয়া সত্ত্বেও, \nবেশিরভাগ পাঠ্য-ভিত্তিক নেটওয়ার্ক প্রোটোকলগুলির মধ্যে এইচটিটিপি, এসএমটিপি, পিওপি 3, আইএমএপি, এবং আরও অনেক কিছু রয়েছে \r\n। হ্যাঁ, এটি খুব বেশি অর্থবহ না করে তবে এটি ইতিহাস এবং আপনার জন্য বিকশিত মান standards


7

- Line Feed and 
 Carriage Return

এই এইচটিএমএল সত্ত্বাগুলি কোনও পাঠ্য অঞ্চলের অভ্যন্তরে একটি নতুন লাইন বা ক্যারেজ রিটার্ন সন্নিবেশ করবে।


11
সত্যই প্রশ্নের উত্তর দেয় না
চেরুভিম

4
@ কেরাউভিম, আমি বুঝতে পারি না আপনি কেন এই উত্তরের পক্ষে ভোট দিয়েছেন? আপনি কি উপরের প্রশ্নটি পড়েছেন? দয়া করে কিছু না বুঝে মন্তব্যের কিছু ভ্রান্ত উত্তর দিবেন না!
মাহবুব

4
@ মাহবুব: এই উত্তরটি বর্তমানে 3 টি ডাউনভোট পেয়েছে কারণ এটি প্রশ্নের উত্তর দেয় না।
চেরোভিম

প্রশ্নের উত্তর দেয় না।
মাইক দেবেনি

4
ভাল আমি কি জন্য সন্ধান করছিলাম & # 13; বোঝানো হয়েছে এবং এই উত্তরটি আমাকে সহায়তা করেছে, তাই খারাপ লাগবে না, সমস্ত তথ্যই ভাল তথ্য এবং এলোমেলো সময়ে মানুষকে সাহায্য করে :)
জ্যাকারবিত্তন্না

6

দেখে মনে হয়, এইচটিএমএল 5 স্পেস অনুসারে , টেক্সারিয়া উপাদানটির মান সম্পত্তি একটি নতুন লাইনের জন্য '\ r \ n' ফেরত পাঠানো উচিত:

উপাদান এর মান নিম্নলিখিত রূপান্তর সঙ্গে প্রয়োগ উপাদান এর কাঁচা মান হতে হিসেবে সংজ্ঞায়িত করা হয়:

"সিআর" (ইউ + 000 ডি) চরিত্রের পরে "এলএফ" (ইউ + 000 এ) অক্ষর এবং প্রতিটি "এলএফ" (ইউ + 000 এ) অক্ষরের প্রতিটি উপস্থিতি "সিআর" দ্বারা পূর্বে না করে প্রতিস্থাপন করুন ( U + 000D) অক্ষর, একটি দ্বি-চরিত্রের স্ট্রিং দ্বারা একটি U + 000D ক্যারিজ প্রত্যাবর্তন "CRLF" (U + 000A) অক্ষর জোড়া নিয়ে গঠিত।

'মান' এর লিঙ্ক অনুসরণ করে এটি স্পষ্ট করে তোলে যে এটি জাভাস্ক্রিপ্টে অ্যাক্সেস করা মান সম্পত্তিটিকে বোঝায়:

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

তবে, পাঁচটি প্রধান ব্রাউজারে (উইন্ডোজ, 11/27/2015 ব্যবহার করে), যদি কোনও পাঠ্যকে '\ r \ n' লেখা হয় তবে '\ r' কেটে ফেলা হয়। (পরীক্ষা করার জন্য: var e = document.createElement ('Textarea'); e.value = '\ r \ n'; সতর্কতা (e.value == '\ n');) আই 9 এর ক্ষেত্রে v9 সাল থেকে এটি সত্য true এর আগে, আই '\ r \ n' ফিরে আসছিল এবং '\ r' এবং '\ n' উভয়কেই '\ r \ n' (যা এইচটিএমএল 5 স্পেক) রূপান্তর করছে। তো ... আমি বিভ্রান্ত

নিরাপদ থাকার জন্য, কেবলমাত্র '\ n' এর পরিবর্তে নিয়মিত প্রকাশে '? R?। N' ব্যবহার করা যথেষ্ট, তবে যদি নতুন লাইন ক্রমটি অবশ্যই জানা থাকে তবে অ্যাপ্লিকেশনটিতে উপরের মতো একটি পরীক্ষা করা যেতে পারে।


একই পৃষ্ঠা থেকে, জেএস এর মাধ্যমে প্রাপ্ত মানটিকে এপিআই মান বলা হয় না?
আনশুল

@ আনশুল - আমি কী বোঝাতে চাইছি তা দেখছি। মূল প্রশ্নটি ছিল "বর্তমানে, গুগল ক্রোম থেকে প্রেরণ করা, যখন আমি মানটি দেখি, তখন এটি নতুন লাইনের জন্য \ r \ n ব্যবহার করে দেখি ..." সুতরাং, যেহেতু এটি "প্রেরণ" হচ্ছে, তাই অনুমান করি যে মানটিটি পড়ছে সার্ভার. আমি ধরেছিলাম এটি জেএসের সাথেই ছিল। যাইহোক, আশা করি আমি পোস্ট করা তথ্যগুলি কিছুটা কার্যকর। আপনার মন্তব্যের জন্য ধন্যবাদ.
বার্নক্যাট

@ ব্র্যাঙ্ক্যাট, আমি মনে করি যে সার্ভারের ভাষাটি এখানে গুরুত্বপূর্ণ নয়। এইচটিএমএল 5 স্পেশালটি 2 এর পক্ষে খুব স্পষ্ট textarea। 1. অনুরোধের বডিটিতে কেবল \ r \ n থাকবে ২. আপনি টাইপ করার সময় \ r, \ r \ n, বা \ n ব্যবহার না করেই JS মানটির কেবলমাত্র \ n থাকবে। এটি IE9 + এর সাথে আপনার সন্ধানের সাথেও মেলে।
আনশুল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.