Template Literals

জাভাস্ক্রিপ্ট ইএস৬ (ES6) - Web Development

442

Template Literals (বা Template Strings) ES6 (ECMAScript 2015) এ পরিচিত একটি নতুন ফিচার, যা স্ট্রিং গঠনকে আরও সহজ, নমনীয় এবং শক্তিশালী করে তোলে। এটি স্ট্রিং কনক্যাটিনেশন (string concatenation) এর জন্য backticks ( ) ব্যবহার করে এবং ভ্যারিয়েবল/এক্সপ্রেশনগুলোকে স্ট্রিংয়ের মধ্যে সহজেই ইন্টারপোলেট (interpolate) করতে পারে।


Template Literals এর সিনট্যাক্স

Template Literals একটি নতুন ধরনের স্ট্রিং ডিফাইন করার পদ্ধতি, যেটি backticks ( ) ব্যবহার করে। এর মধ্যে ভ্যারিয়েবল বা এক্সপ্রেশন গুলি ${} এর মধ্যে লিখে স্ট্রিংয়ে এমবেড করা যায়।

উদাহরণ:

const name = "John";
const age = 30;

const greeting = `Hello, my name is ${name} and I am ${age} years old.`;
console.log(greeting);  // "Hello, my name is John and I am 30 years old."

এখানে, ${name} এবং ${age} হল string interpolation এর মাধ্যমে ভ্যারিয়েবলগুলি স্ট্রিংয়ের মধ্যে ইনসার্ট করা।


Template Literals এর বৈশিষ্ট্য

  1. String Interpolation (স্ট্রিং ইন্টারপোলেশন): Template Literals এর সবচেয়ে বড় সুবিধা হলো string interpolation, যেখানে আপনি সহজেই ভ্যারিয়েবল বা এক্সপ্রেশনকে স্ট্রিংয়ের মধ্যে এমবেড করতে পারেন।

    উদাহরণ:

    const firstName = "Alice";
    const lastName = "Smith";
    const fullName = `${firstName} ${lastName}`;  // ভ্যারিয়েবল এমবেডিং
    console.log(fullName);  // "Alice Smith"
    
  2. Multiple Lines String (মাল্টি-লাইন স্ট্রিং): Template Literals ব্যবহার করলে আপনি একাধিক লাইনে স্ট্রিং লিখতে পারেন, যেটি সাধারণ স্ট্রিং ডাবল কোটস বা সিঙ্গেল কোটসে সম্ভব নয়।

    উদাহরণ:

    const message = `This is a
    multi-line
    string.`;
    console.log(message);
    // "This is a
    // multi-line
    // string."
    

    এখানে, \n বা কোনো বিশেষ সিকোয়েন্সের প্রয়োজন নেই, আপনি সহজেই বিভিন্ন লাইনে স্ট্রিং লিখতে পারেন।

  3. Expression Embedding (এক্সপ্রেশন এমবেডিং): Template Literals শুধু ভ্যারিয়েবলই নয়, বরং যেকোনো এক্সপ্রেশনও স্ট্রিংয়ের মধ্যে এমবেড করতে পারে। এটি খুবই শক্তিশালী এবং সহজ।

    উদাহরণ:

    const x = 5;
    const y = 10;
    const result = `${x} + ${y} = ${x + y}`;  // এক্সপ্রেশন এমবেডিং
    console.log(result);  // "5 + 10 = 15"
    
  4. Tagged Template Literals: Tagged Template Literals একটি উন্নত ফিচার, যেখানে আপনি একটি ফাংশন ব্যবহার করে Template Literal কে প্রসেস করতে পারেন। ফাংশনটি স্ট্রিং এবং এক্সপ্রেশনগুলিকে প্যারামিটার হিসেবে গ্রহণ করে এবং কাস্টমভাবে প্রক্রিয়া করতে সক্ষম হয়।

    উদাহরণ:

    function highlight(strings, ...values) {
      let result = strings[0];
      values.forEach((value, index) => {
        result += `<b>${value}</b>${strings[index + 1]}`;
      });
      return result;
    }
    
    const name = "John";
    const age = 30;
    const message = highlight`My name is ${name} and I am ${age} years old.`;
    console.log(message);
    // "My name is <b>John</b> and I am <b>30</b> years old."
    

    এখানে, highlight ফাংশনটি স্ট্রিং এবং এক্সপ্রেশনগুলিকে প্রক্রিয়া করছে এবং HTML ট্যাগের মধ্যে এমবেড করছে।


Template Literals এর সুবিধা

  • সংক্ষিপ্ত এবং পরিষ্কার কোড: স্ট্রিং কনক্যাটিনেশনের জন্য আর দীর্ঘ কোড লেখা লাগে না, যেমন + অপারেটর ব্যবহার করা।
  • ভ্যারিয়েবল ও এক্সপ্রেশন সহজে এমবেড করা যায়।
  • মাল্টি-লাইন স্ট্রিং ব্যবহারের সুবিধা: এটি কোডের পড়তে সুবিধা দেয় এবং ডকুমেন্টেশনের জন্য উপযুক্ত।
  • Tagged Template: এটি বিশেষ ধরনের কাস্টম প্রসেসিংয়ের জন্য খুবই শক্তিশালী।

সারাংশ

Template Literals ES6 এর একটি গুরুত্বপূর্ণ ফিচার, যা স্ট্রিং তৈরির প্রক্রিয়াকে অনেক সহজ, সংক্ষিপ্ত এবং শক্তিশালী করে তোলে। এর মাধ্যমে আপনি স্ট্রিংয়ের মধ্যে ভ্যারিয়েবল এবং এক্সপ্রেশন সহজেই এমবেড করতে পারেন, মাল্টি-লাইন স্ট্রিং তৈরি করতে পারেন এবং কাস্টম ফাংশন (Tagged Templates) ব্যবহার করে আরও উন্নত প্রক্রিয়া করতে পারেন। Template Literals জাভাস্ক্রিপ্টের কোড লেখার পদ্ধতিকে আরও পরিষ্কার এবং সহজতর করে তোলে।

Content added By

Template Literals (বা Template Strings) ES6 এর একটি নতুন ফিচার যা স্ট্রিং ব্যবহারের পদ্ধতিতে বড় পরিবর্তন আনে। এটি সাধারণ স্ট্রিং কনক্যাটেনেশনের (concatenation) চেয়ে আরও সহজ, পরিষ্কার এবং শক্তিশালী পদ্ধতি প্রদান করে। Template Literals বিশেষভাবে কাজের সময় ডাইনামিক ভ্যালু ইনসার্ট (dynamic value insertion), মাল্টি-লাইন স্ট্রিং, এক্সপ্রেশন ইভ্যালুয়েশন, ইত্যাদি ক্ষেত্রে সুবিধা প্রদান করে।


Template Literals এর সিনট্যাক্স

Template Literals সাধারণ স্ট্রিং কোটেশন (" " বা ' ') এর পরিবর্তে ব্যাকটিক (`) চিহ্ন ব্যবহার করে ডিফাইন করা হয়। এর মাধ্যমে সহজেই ডাইনামিক ভ্যালু বা এক্সপ্রেশনকে স্ট্রিং এর মধ্যে অন্তর্ভুক্ত করা যায়।

উদাহরণ:

const name = "John";
const message = `Hello, ${name}!`;
console.log(message);  // "Hello, John!"

এখানে name ভ্যারিয়েবলটি ${} এর মধ্যে দিয়ে স্ট্রিং এর মধ্যে ঢুকিয়ে দেওয়া হয়েছে। এটি string interpolation (স্ট্রিং ইন্টারপোলেশন) নামে পরিচিত, যেখানে এক্সপ্রেশন বা ভ্যালু সরাসরি স্ট্রিংয়ের মধ্যে ব্যবহার করা যায়।


Template Literals এর সুবিধাসমূহ

  1. স্ট্রিং ইন্টারপোলেশন (String Interpolation): Template Literals এর সবচেয়ে বড় সুবিধা হলো string interpolation, অর্থাৎ স্ট্রিংয়ের মধ্যে সরাসরি ভ্যারিয়েবল বা এক্সপ্রেশন যোগ করা যায়, যা সাধারন স্ট্রিং কনক্যাটেনেশন থেকে অনেক বেশি সহজ এবং পড়তে সুবিধাজনক।

    উদাহরণ:

    const firstName = "John";
    const lastName = "Doe";
    const greeting = `Hello, my name is ${firstName} ${lastName}.`;
    console.log(greeting);  // "Hello, my name is John Doe."
    
  2. মাল্টি-লাইন স্ট্রিং (Multi-line Strings): Template Literals মাল্টি-লাইন স্ট্রিং লেখা সহজ করে তোলে, যেটি সাধারণ স্ট্রিং কনক্যাটেনেশনে অনেক জটিল হয়ে পড়ে। এতে আপনি কোনও বিশেষ ক্যারেক্টার ব্যবহার ছাড়াই একাধিক লাইনে স্ট্রিং লিখতে পারবেন।

    উদাহরণ:

    const message = `
    Hello, John!
    Welcome to our website.
    We hope you enjoy your stay.
    `;
    console.log(message);
    

    আউটপুট:

    Hello, John!
    Welcome to our website.
    We hope you enjoy your stay.
    
  3. এক্সপ্রেশন ইভ্যালুয়েশন (Expression Evaluation): Template Literals এ আপনি শুধুমাত্র ভ্যারিয়েবল নয়, বরং যেকোনো এক্সপ্রেশন ব্যবহার করতে পারেন। আপনি যেকোনো ফাংশন কল বা গণনা, সমস্ত কিছু ${} এর মধ্যে দিয়ে সরাসরি স্ট্রিংয়ের মধ্যে রাখতে পারবেন।

    উদাহরণ:

    const a = 5;
    const b = 10;
    const result = `The sum of ${a} and ${b} is ${a + b}.`;
    console.log(result);  // "The sum of 5 and 10 is 15."
    
  4. ট্যাগড টেমপ্লেট লিটারেল (Tagged Template Literals): Template Literals এর একটি শক্তিশালী বৈশিষ্ট্য হলো tagged templates। এতে আপনি একটি ফাংশন কল করে স্ট্রিংকে প্রসেস করতে পারেন, যা আপনার স্ট্রিংকে কাস্টমাইজ করতে সাহায্য করে। এটি সাধারণত স্ট্রিং প্রসেসিং বা সিকিউরিটি (যেমন SQL injection থেকে রক্ষা) এর জন্য ব্যবহৃত হয়।

    উদাহরণ:

    function tag(strings, ...expressions) {
      console.log(strings);  // ['Hello ', ' world!']
      console.log(expressions);  // ['John']
      return strings[0] + expressions[0].toUpperCase() + strings[1];
    }
    
    const name = "John";
    const message = tag`Hello ${name} world!`;
    console.log(message);  // "Hello JOHN world!"
    

Template Literals এর সুবিধাগুলি সংক্ষেপে

  • স্ট্রিং ইন্টারপোলেশন: ভ্যারিয়েবল বা এক্সপ্রেশন স্ট্রিংয়ের মধ্যে সহজেই ব্যবহার করা যায়।
  • মাল্টি-লাইন স্ট্রিং: একাধিক লাইনে স্ট্রিং লেখা সম্ভব, কোনও অতিরিক্ত ক্যারেক্টার ছাড়াই।
  • এক্সপ্রেশন ইভ্যালুয়েশন: সরাসরি এক্সপ্রেশন বা ফাংশন কল স্ট্রিংয়ের মধ্যে ব্যবহার করা যায়।
  • ট্যাগড টেমপ্লেট: ফাংশনের মাধ্যমে কাস্টমাইজড স্ট্রিং প্রসেসিং করা যায়।

সংক্ষেপে, Template Literals কেন ব্যবহার করবেন?

Template Literals ES6 এর একটি শক্তিশালী ফিচার যা স্ট্রিং নিয়ে কাজ করার পদ্ধতিকে অনেক বেশি কার্যকরী এবং সহজ করে তোলে। এতে কোড কমপ্যাক্ট, পরিষ্কার এবং আরও পড়তে সুবিধাজনক হয়ে ওঠে, বিশেষ করে যখন ডাইনামিক ডেটা স্ট্রিংয়ের মধ্যে ইনসার্ট করতে হয়।

Content added By

ES6 (ECMAScript 2015) এ Template Literals (বা Template Strings) নামে একটি নতুন ফিচার পরিচিতি পেয়েছে, যার মাধ্যমে multi-line strings তৈরি করা সম্ভব হয়েছে। এর আগের সংস্করণে, একাধিক লাইনে স্ট্রিং তৈরি করতে escape characters (\n) ব্যবহার করতে হত, কিন্তু ES6 এ backticks (`) ব্যবহার করে সহজে একাধিক লাইনে স্ট্রিং তৈরি করা যায়।


Template Literals ব্যবহার করে Multi-line Strings

ES6 এর Template Literals ব্যবহার করলে, আপনি সহজেই একাধিক লাইনে স্ট্রিং তৈরি করতে পারবেন। এখানে backticks (`) ব্যবহার করা হয়, যা সাধারণ স্ট্রিং কোটেশন মার্ক ('' বা "") এর পরিবর্তে ব্যবহার করা হয়।

উদাহরণ:

const message = `
  Hello,
  This is a multi-line string.
  It can span multiple lines easily.
`;

console.log(message);

উপরে, backticks (`) ব্যবহার করে আমরা একাধিক লাইনে স্ট্রিং ডিফাইন করেছি, এবং এটি কম্পাইলার ঠিকভাবে টেমপ্লেট লিটারালকে একাধিক লাইনে সংরক্ষণ করেছে। যখন আপনি এটি কনসোলে প্রিন্ট করবেন, তখন আউটপুট হবে:

Hello,
This is a multi-line string.
It can span multiple lines easily.

Template Literals এর অন্যান্য বৈশিষ্ট্য

  1. String Interpolation (স্ট্রিং ইন্টারপোলেশন): Template Literals আপনাকে স্ট্রিংয়ের মধ্যে ভ্যারিয়েবল এবং এক্সপ্রেশন ইনসার্ট করার সুবিধা দেয়। এটি ${} সিম্বল ব্যবহার করে করা যায়।

    উদাহরণ:

    const name = "John";
    const age = 30;
    const message = `
      Hello, my name is ${name}.
      I am ${age} years old.
    `;
    console.log(message);
    

    আউটপুট:

    Hello, my name is John.
    I am 30 years old.
    
  2. Multiline Strings with Expression: Template Literals এর মাধ্যমে শুধু ভ্যারিয়েবল নয়, যেকোনো এক্সপ্রেশনও ইনসার্ট করা যেতে পারে।

    উদাহরণ:

    const x = 5;
    const y = 10;
    const result = `
      The sum of ${x} and ${y} is ${x + y}.
    `;
    console.log(result);
    

    আউটপুট:

    The sum of 5 and 10 is 15.
    

কেন Template Literals ব্যবহার করবেন?

  • সহজে একাধিক লাইনে স্ট্রিং তৈরি: আগে যেখানে \n ব্যবহার করতে হতো, এখন backticks (`) ব্যবহার করলেই আপনি একাধিক লাইনে স্ট্রিং লিখতে পারবেন।
  • স্ট্রিং ইন্টারপোলেশন: স্ট্রিংয়ের মধ্যে ভ্যারিয়েবল বা এক্সপ্রেশন ইনসার্ট করা অনেক সহজ এবং পড়তে সুবিধাজনক।
  • কমপ্যাক্ট কোড: স্ট্রিং তৈরির ক্ষেত্রে কোড আরও কমপ্যাক্ট এবং সহজ।

এখন পর্যন্ত সুবিধাগুলি:

  • একাধিক লাইনে স্ট্রিং তৈরি করার সহজ পদ্ধতি।
  • স্ট্রিংয়ের মধ্যে ডাইনামিক ডেটা ইনসার্ট করার সুবিধা (স্ট্রিং ইন্টারপোলেশন)।
  • কোডকে আরও পরিষ্কার ও সংক্ষিপ্ত করা সম্ভব।

ES6 এর Template Literals এর মাধ্যমে স্ট্রিং পরিচালনা এখন অনেক বেশি সুবিধাজনক, বিশেষ করে যখন আপনি একাধিক লাইনে স্ট্রিং তৈরি করতে চান বা ডাইনামিক ডেটা ইনসার্ট করতে চান।

Content added By

String Interpolation (স্ট্রিং ইন্টারপোলেশন) ES6 এর একটি গুরুত্বপূর্ণ ফিচার, যা Template Literals নামে পরিচিত। এর মাধ্যমে স্ট্রিং-এর মধ্যে ডাইনামিক ডেটা সহজেই ইনসার্ট করা যায়, যা পুরনো string concatenation (স্ট্রিং কনক্যাটেনেশন) পদ্ধতির চেয়ে অনেক বেশি পাঠযোগ্য এবং সুবিধাজনক।


Template Literals

Template Literals এ স্ট্রিং গঠন করতে backticks (`) ব্যবহার করা হয়, এবং ডাইনামিক ডেটা বা ভ্যারিয়েবলগুলিকে স্ট্রিং-এর মধ্যে ইনসার্ট করতে ${} সিঙ্কট্যাক্স ব্যবহার করা হয়। এটি আপনাকে একাধিক লাইনে স্ট্রিং লিখতেও সাহায্য করে।

Sintax:

const string = `This is a template literal with a variable: ${variableName}`;

String Interpolation উদাহরণ

1. ভ্যারিয়েবল ইনসার্ট করা:

const name = "John";
const age = 30;

const message = `My name is ${name} and I am ${age} years old.`;
console.log(message);  // "My name is John and I am 30 years old."

এখানে, ${name} এবং ${age} এর মাধ্যমে ভ্যারিয়েবলগুলো স্ট্রিং-এর মধ্যে সহজেই ইনসার্ট করা হয়েছে।

2. একাধিক লাইনে স্ট্রিং:

Template Literals এর মাধ্যমে আপনি একাধিক লাইনে স্ট্রিং লিখতে পারবেন, যা পুরনো + অপারেটর ব্যবহারের তুলনায় অনেক সহজ।

const message = `Hello,
This is a message 
spread over multiple lines.`;

console.log(message);

এখানে, স্ট্রিং একাধিক লাইনে লিখে backticks ব্যবহার করা হয়েছে। এটি \n বা + দিয়ে নতুন লাইন তৈরি করার তুলনায় অনেক সহজ এবং কোড পরিষ্কার রাখে।

3. এক্সপ্রেশন ইনসার্ট করা:

Template Literals শুধু ভ্যারিয়েবল নয়, আপনি এক্সপ্রেশনও স্ট্রিং-এর মধ্যে ব্যবহার করতে পারেন।

const a = 5;
const b = 10;
const result = `The sum of ${a} and ${b} is ${a + b}.`;

console.log(result);  // "The sum of 5 and 10 is 15."

এখানে, ${a + b} দিয়ে গণনা করা ফলাফল স্ট্রিং-এর মধ্যে সন্নিবেশিত হয়েছে।

4. ফাংশন কল ইনসার্ট করা:

Template Literals এ ফাংশন কলও করা সম্ভব।

function greet(name) {
  return `Hello, ${name}!`;
}

const message = `Message: ${greet("John")}`;

console.log(message);  // "Message: Hello, John!"

এখানে, greet("John") ফাংশন কলের মাধ্যমে রিটার্ন হওয়া ভ্যালু স্ট্রিং-এর মধ্যে অন্তর্ভুক্ত করা হয়েছে।


String Interpolation এর সুবিধা

  1. কোড পড়তে সহজ: Template Literals এর মাধ্যমে স্ট্রিং তৈরি করা অনেক সহজ এবং কোডটি অধিক পাঠযোগ্য হয়।
  2. একাধিক লাইনে স্ট্রিং: বহু লাইনে স্ট্রিং লেখার সুবিধা দিয়ে কোড আরও সোজা এবং সুন্দর হয়।
  3. বিভিন্ন এক্সপ্রেশন ব্যবহারের সুযোগ: ভ্যারিয়েবল, এক্সপ্রেশন, ফাংশন কল প্রভৃতির মাধ্যমে স্ট্রিংয়ের মধ্যে ডাইনামিক কনটেন্ট যোগ করা যায়।

উপসংহার

ES6 এর String Interpolation বা Template Literals ব্যবহার করে কোড লেখা অনেক সহজ এবং সুন্দর হয়। এটি স্ট্রিং কনক্যাটেনেশন থেকে অনেক সুবিধাজনক, বিশেষ করে যখন ডাইনামিক ডেটা বা এক্সপ্রেশন স্ট্রিং-এর মধ্যে সন্নিবেশ করতে হয়।

Content added By

Tagged Template Literals ES6 (ECMAScript 2015) এর একটি শক্তিশালী ফিচার যা template literals এর সাথে একটি ফাংশন যুক্ত করতে সক্ষম। এর মাধ্যমে, আপনি একটি template literal এর মান প্রসেস করতে পারেন, যেমন স্ট্রিং ফরম্যাটিং বা ডাইনামিক ডেটা প্রক্রিয়া করা। সাধারণভাবে, template literals স্ট্রিং ইন্টারপোলেশন (string interpolation) বা মাল্টিলাইন স্ট্রিং তৈরিতে ব্যবহৃত হয়, তবে tagged templates এর মাধ্যমে এগুলির সাথে আরও কাস্টম লজিক বা প্রক্রিয়া প্রয়োগ করা সম্ভব হয়।


Tagged Template Literals এর সিনট্যাক্স

Tagged Template Literals এর সিনট্যাক্স কিছুটা এরকম:

function tagFunction(strings, ...values) {
  // strings: template literal এর স্ট্যাটিক অংশ
  // values: template literal এর ডাইনামিক অংশ
}

const result = tagFunction`Hello, ${name}! You have ${count} new messages.`;

এখানে tagFunction হল একটি tagged template ফাংশন যা template literal এর স্ট্যাটিক অংশ এবং ডাইনামিক অংশগুলিকে আলাদা করে প্রক্রিয়া করতে সক্ষম।


Tagged Template Literals এর কাজ কীভাবে করে?

Tagged template literals দুটি অংশে বিভক্ত:

  1. স্ট্যাটিক অংশ (Static Parts): টেমপ্লেট লিটারালের সেই অংশ যেগুলি পরিবর্তনশীল নয়, বা যেগুলির মধ্যে কোনো ভেরিয়েবল ব্যবহার করা হয়নি।
  2. ডাইনামিক অংশ (Dynamic Parts): টেমপ্লেট লিটারালের সেই অংশ যেখানে এক বা একাধিক ভেরিয়েবল বা এক্সপ্রেশন ব্যবহার করা হয়।

Tagged template function এই দুটি অংশ গ্রহণ করে এবং তাদের উপর কাস্টম লজিক প্রয়োগ করতে পারে।


Tagged Template Function উদাহরণ

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

function highlight(strings, ...values) {
  let result = strings[0];
  values.forEach((value, index) => {
    result += `<b>${value}</b>${strings[index + 1]}`;
  });
  return result;
}

const name = "John";
const age = 30;

const message = highlight`Hello, my name is ${name} and I am ${age} years old.`;

console.log(message);
// "Hello, my name is <b>John</b> and I am <b>30</b> years old."

এখানে, highlight ফাংশন tagged template function হিসেবে কাজ করছে। এটি টেমপ্লেট লিটারালকে প্রসেস করে ডাইনামিক অংশগুলিকে <b> ট্যাগ দিয়ে বোল্ড করে ফেরত দেয়।


Tagged Template Literals এর ব্যবহার

Tagged Template Literals এর মাধ্যমে আপনি অনেক ধরনের কাস্টম প্রক্রিয়া করতে পারেন, যেমন:

  1. স্ট্রিং ফরম্যাটিং: আপনি টেমপ্লেট লিটারালস ব্যবহার করে স্ট্রিং কাস্টম ফরম্যাটে রিটার্ন করতে পারেন।
  2. অথেনটিকেশন বা সিকিউরিটি: যদি টেমপ্লেটে ইনপুট ভ্যালু থাকে, তবে আপনি ইনপুট ভ্যালুগুলি স্যানিটাইজ করে SQL ইনজেকশন বা XSS (Cross-Site Scripting) এর মতো আক্রমণ থেকে রক্ষা করতে পারেন।
  3. অনুবাদ (Translation): অ্যাপ্লিকেশনের বিভিন্ন ভাষায় স্ট্রিং অনুবাদ করার জন্য tagged templates ব্যবহার করা যেতে পারে।

আরেকটি উদাহরণ: Tagged Template with SQL Injection Protection

ধরা যাক, আমরা একটি SQL কুয়েরি তৈরি করছি এবং চাই যে ইউজারের ইনপুটকে স্যানিটাইজ করতে:

function sql(strings, ...values) {
  let query = strings[0];
  values.forEach((value, index) => {
    query += `'${value.replace(/'/g, "''")}'${strings[index + 1]}`;
  });
  return query;
}

const userInput = "O'Reilly";
const query = sql`SELECT * FROM users WHERE name = ${userInput}`;

console.log(query);
// "SELECT * FROM users WHERE name = 'O''Reilly'"

এখানে, sql tagged function ব্যবহার করা হয়েছে, যা ইউজারের ইনপুট স্যানিটাইজ করে SQL ইনজেকশন থেকে রক্ষা করছে।


Tagged Template Literals এর সুবিধা

  1. কাস্টম প্রসেসিং: আপনি টেমপ্লেট লিটারালের স্ট্যাটিক ও ডাইনামিক অংশগুলোর উপর কাস্টম প্রক্রিয়া প্রয়োগ করতে পারেন।
  2. সিকিউরিটি: ইউজারের ইনপুট স্যানিটাইজ করে বিভিন্ন নিরাপত্তা সমস্যা যেমন SQL ইনজেকশন, XSS আক্রমণ প্রতিরোধ করা যায়।
  3. বহুমুখী ব্যবহার: স্ট্রিং ফরম্যাটিং, লজিক্যাল প্রসেসিং, এবং অন্য অনেক কাস্টম প্রয়োগ Tagged Template এর মাধ্যমে সহজেই করা সম্ভব।

সারাংশ

Tagged Template Literals ES6 এর একটি শক্তিশালী ফিচার যা স্ট্রিং লিটারালগুলোর সাথে একটি ফাংশন যুক্ত করে, এবং এটি কাস্টম লজিক প্রয়োগ করতে সাহায্য করে। এটি কোডকে আরও শক্তিশালী ও ফ্লেক্সিবল করে তোলে এবং বিভিন্ন ধরনের ডেটা প্রসেসিং বা নিরাপত্তা উন্নতির জন্য ব্যবহৃত হতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...