\\';const sanitized = escapeHTML`User input: ${userInput}`;console.log(sanitized); // Output: \\\"User input: \\\"
Tagged template literals provide a versatile tool for dynamic string manipulation in JavaScript. They can simplify tasks like internationalization and custom string formatting, leading to more expressive and maintainable code.
","image":"http://www.luping.net/uploads/20241007/17283092466703e7fece88e.jpg","datePublished":"2024-11-08T07:21:58+08:00","dateModified":"2024-11-08T07:21:58+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}A tagged template literal involves a template literal prefixed with a function, called a tag. This function can process and manipulate the literal's content. Here's a simple example:
function tag(strings, ...values) { console.log(strings); console.log(values); return 'Processed string'; } const name = 'Alice'; const greeting = tag`Hello, ${name}! How are you?`; console.log(greeting);
Tagged template literals can dynamically translate strings based on the user’s locale. Here’s an example using Japanese:
function i18n(strings, ...values) { const translations = { 'Hello, ': 'こんにちは、', '! How are you?': '!元気ですか?', }; return strings.reduce((result, str, i) => result translations[str] (values[i] || ''), ''); } const name = 'アリス'; const greeting = i18n`Hello, ${name}! How are you?`; console.log(greeting); // Output: "こんにちは、アリス!元気ですか?"
They can also implement custom formatting logic, such as escaping HTML.
function escapeHTML(strings, ...values) { const escape = (str) => str.replace(/&/g, '&').replace(/, '<').replace(/>/g, '>'); return strings.reduce((result, str, i) => result str escape(values[i] || ''), ''); } const userInput = ''; const sanitized = escapeHTML`User input: ${userInput}`; console.log(sanitized); // Output: "User input: <script>alert("XSS")</script>"
Tagged template literals provide a versatile tool for dynamic string manipulation in JavaScript. They can simplify tasks like internationalization and custom string formatting, leading to more expressive and maintainable code.
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3