TypeScript:
Удаление кавычек из строки
Как это сделать:
Вот ваш безликий гид по освобождению ваших строк от надоедливых кавычек в TypeScript.
// Вариант A: Замена одинарных или двойных кавычек с помощью regex
function removeQuotes(input: string): string {
return input.replace(/^["']|["']$/g, '');
}
console.log(removeQuotes(`"Quoted string"`)); // Quoted string
console.log(removeQuotes(`'Another one'`)); // Another one
// Вариант B: Работа со строками, которые начинаются и заканчиваются разными кавычками
function removeMismatchedQuotes(input: string): string {
return input.replace(/^(['"])(.*?)(?<!\1)\1$/, '$2');
}
console.log(removeMismatchedQuotes(`"Mismatched'`)); // "Mismatched'
// Вариант C: Удаление нескольких типов кавычек
function removeAllQuotes(input: string): string {
return input.replace(/['"]+/g, '');
}
console.log(removeAllQuotes(`"'Mix'n'Match'"`)); // Mix'n'Match
Подробный разбор
Давно, задолго до появления TypeScript, программисты JavaScript уже сталкивались с хитростями кавычек, и история практически не изменилась для TypeScript. Со временем меняется и то, как мы манипулируем строками. Сегодня, благодаря мощи regex, мы отодвигаем в сторону громоздкие методы разбиения строк или другие утомительные методы.
Хотя приведенные выше примеры должны покрыть большинство ваших потребностей, помните, что работа с кавычками может быть сложной. Вложенные, несоответствующие и экранированные кавычки - это хитрецы, ждущие, чтобы запутать вас. Для них вам могут потребоваться более сложные шаблоны или даже парсеры, чтобы справиться с каждым каверзным случаем.
Альтернативы? Некоторые люди предпочитают использовать библиотеки вроде lodash, с методами как trim
и trimStart
/ trimEnd
, которые можно настроить для обрезки кавычек, если вы укажете символы, которые хотите удалить.
А для энтузиастов TypeScript не забудем о типах. Хотя здесь мы в основном имеем дело со строками, когда вы работаете с вводом пользователя или парсингом, включение ограничителей типа или даже общих типов может помочь обеспечить безопасность вашего кода так же, как и обрезка кавычек.
Смотрите также
Посетите эти виртуальные места для получения дополнительной информации:
- Информационные документы MDN о regex (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)
- Официальная документация TypeScript (https://www.typescriptlang.org/docs/)
- You Don’t Need Lodash/Underscore – Помощники для работы со строками (https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#strings)
- Stack Overflow: Преодолейте траншеи, в которых бесчисленное количество разработчиков сражалось с катастрофами, связанными с кавычками (https://stackoverflow.com/)