Кто-нибудь знает, как я могу заменить этот символ 2 ниже из строки в код?заменить символ в javascript
- 'левый одинарная кавычка в ‘
- ' правой одинарную кавычку в ’
- "левая двойная кавычка в “
- " правой двойной кавычки в ”
Кто-нибудь знает, как я могу заменить этот символ 2 ниже из строки в код?заменить символ в javascript
Зная, какой способ сделать кавычки (слева или справа) будет непросто, если вы хотите, чтобы он был надежным. Если это не так уж важно, чтобы сделать это совершенно правильно все время, вы можете использовать несколько регулярных выражений:
function curlyQuotes(inp) {
return inp.replace(/(\b)'/, "$1’")
.replace(/'(\b)/, "‘$1")
.replace(/(\b)"/, "$1”")
.replace(/"(\b)/, "“$1")
}
curlyQuotes("'He said that he was \"busy\"', said O'reilly")
// ‘He said that he was “busy”', said O’reilly
Вы увидите, что второй 'не изменяется должным образом.
The твердая часть - это идентификация апострофов, что испортит количество одиночных кавычек.
Для двойных кавычек, я думаю, что можно найти их все и заменить нечетные левые фигурные и четные с правильной фигуркой. Если у вас нет случая с вложенными котировками.
Что такое источник? Английский текст? Код?
Я недавно написал механизм префиксации типографии, который называется jsPrettify, который делает именно это. Вот только версия с кавычками, которую я использую (оригинал here):
prettifyStr = function(text) {
var e = {
lsquo: '\u2018',
rsquo: '\u2019',
ldquo: '\u201c',
rdquo: '\u201d',
};
var subs = [
{pattern: "(^|[\\s\"])'", replace: '$1' + e.lsquo},
{pattern: '(^|[\\s-])"', replace: '$1' + e.ldquo},
{pattern: "'($|[\\s\"])?", replace: e.rsquo + '$1'},
{pattern: '"($|[\\s.,;:?!])', replace: e.rdquo + '$1'}
];
for (var i = 0; i < subs.length; i++) {
var sub = subs[i];
var pattern = new RegExp(sub.pattern, 'g');
text = text.replace(pattern, sub.replace);
};
return text;
};
Вы имели в виду для каждого из тех, кто находится на своей собственной линии? – Nosredna
Он хочет заменить обычные кавычки на «кудрявые». –
ОК. Я собираюсь переформатировать, так что это легче понять. – Nosredna