2014-09-30 2 views
0

Я создаю букмарклет, и мне нужно избегать использования двойных кавычек ("), потому что я должен включить букмарклет внутри HTML-страницы, и он находится внутри строки, которая использует двойные кавычки:Экранирование символов в JavaScript с использованием их кодов ASCII

<a href="javascript:..."> 

в некоторых местах я должен использовать код replace(/".*/, '');

в СЕПГЕ, я могу избежать двойных кавычек, используя \x22 (22 является ASCII шестнадцатеричного кода для двойных кавычек)

можно ли сделать что-то похожие на JavaScript, как replace(/\x22.*/, '');?

ответ

1

Точно так же вы должны использовать кавычки в значении любого HTML атрибута.

пример

<img src="..." alt="A picture of Bob &quote;Wild Man&quot; Johnson"> 

так для вас

<a href="javascript:replace(/&quot;.*/, '');"> 
+0

Он также работает, спасибо. – BearCode

+0

Не обижайтесь, но «тоже работал» - это немного преуменьшение. Это правильный ответ. Вот как вы пишете HTML. (Ваш код записывается в HTML.) Предложение от theram будет отмечать программиста как немного невежественное. Да, его предложение вроде работает нормально для вашего очень ограниченного случая, но как только вы начинаете нуждаться в дополнительных цитатах для других целей, это становится смешно. Посмотрите на мою историю ответов; Я кое-что знаю о букмарклетах. –

+0

ОК, я отметил этот ответ как принятый ответ. Извините за задержку. – BearCode

1

Вы можете использовать другой синтаксис для создания RegExp и использовать String.fromCharCode

Вот пример:

'"hello"'.replace(new RegExp(String.fromCharCode(34), 'g'), '-quotes-') 

--> 

'-quotes-hello-quotes-' 
+1

Awesome, большое спасибо! Я использовал 'var x = x.replace (новый RegExp (String.fromCharCode (34) + '. *'), '');' И он отлично работает – BearCode