2010-12-03 3 views
3

Можно ли перевести специальные символы, такие как ®, ü и т. Д. С помощью функции замены строки в javascript?javascript заменяет специальные символы

+1

Возможно, вы захотите использовать `` \ xDD `` или `` \ uDDDD "` вместо фактического символа, чтобы сделать его более читабельным и управляемым для большинства редакторов. – 2010-12-03 16:12:02

ответ

2

да, и это так же просто, как может быть:

'®'.replace('®','anything'); 
1

Используйте этот синтаксис ...

string.replace(/\xCC/g,''); 

Где CC 'является код символа шестигранной для полукокса которой вы хотите заменить. В этом примере я заменяю пустой строкой ''.

Специально для символов, перечисленных в вопросе:

string.replace(/[\xAE\xFC]/g,''); 
+0

Выполнение этого действия на этой странице в консоли не возвращает ожидаемых результатов. – 2010-12-03 16:33:29

+0

@Mike используя какой символ код? – 2010-12-03 16:38:58

+1

@ El, ах! После глобального флага вы получаете дополнительную косую черту. Вот почему. – 2010-12-03 16:44:28

5

Конечно есть!

Запуск этого в консоли Firebug

"®ü".replace(/[®ü]/g,"replaced") 

вернулся

"replacedreplaced"

Вы также можете сделать

"®ü".replace(/[\xAE\xFC]/g,"Wohoo! "); 

который возвращает

"Wohoo! Wohoo! " 

Хорошая страница гекс символ поиска может быть найден в http://www.ascii.cl/htmlcodes.htm


Пример

работает этот JQuery на этой странице

$(".post-text").text().replace(/®/g," ******** ") 

возвращается

" is it possible to translate special characters like ******** , ü etc with javascript 
String replace function? Use this syntax... string.replace(/\xCC/g/,''); Where 'CC' is 
the hex character code for the char you are wanting to replace. In this example I am 
replacing with empty string ''. yes, and is as simple as can be: ' ******** '.replace(' 
******** ','anything'); Sure is! Running this in the Firebug console " ******** ü". 
replace(/[ ******** ü]/g,"replaced") returned replacedreplaced " 
0

(да, я знаю, что этот вопрос старый, но он по-прежнему высоко поднялся в Google, когда я искал что-то конкретное, так что комментарий/ответ может быть полезен для некоторых людей):

Предыдущие плакаты сказали вам как заменить отдельные символы. Я хотел бы добавить, что это, как правило, не очень хорошая идея (есть исключения, конечно), потому что есть так много возможных «специальных символов», о которых вы должны думать. Вы просто добавите все больше и больше замен, и вам все равно не хватит.

Как правило, проще и безопаснее искать одну из встроенных функций, которые будут выполнять от всех символов, которым требуется специальная обработка.

В вашем вопросе, вы не говорите нам, что вам это нужно - но я предполагаю, что через 3 года, это больше для других людей с подобными проблемами в любом случае:

Если вы хотите передать строку как параметр, лучше использовать функцию encodeURIComponent. Также посмотрите на When are you supposed to use escape instead of encodeURI/encodeURIComponent?.

Если вы хотите кодировать другие вещи, всегда лучше найти встроенную функцию, которая сделает это за вас. Может быть http://www.the-art-of-web.com/javascript/escape/ или http://shebang.brandonmintern.com/foolproof-html-escaping-in-javascript/ (несколько многословен, но с хорошим объяснением вещей, которые вы должны не делать) поможет

-1

Используйте это заявление JavaScript, чтобы заменить все специальные символы из строки

var a1 = $('#txt').val().replace(/[^\x30-\x39\x41-\x5A\x61-\x7A\x20\x26\x28\x29\x2C\x27\x22\x2E\x2F\x26\x40\x5C\x7C\x3A\x2D]/g, ''); 

выше заявление заменит другой, чем в наборе 0-9A-Za-Z &(), '»./ & @ \ |: - с ничего т.е. удаляет любые управляющие символы и т.д.

во всяком случае @ альберто-Zaccagni сэр, я надеюсь, вы не будете отрицать на этот раз на голосование против меня нет :)

Смежные вопросы