Я хочу удалить все специальные символы, кроме пробела из строки, используя JavaScript.
Например,
abc's test#s
должен выводить как
abcs tests
.
Я хочу удалить все специальные символы, кроме пробела из строки, используя JavaScript.
Например,
abc's test#s
должен выводить как
abcs tests
.
Ответы:
Вы должны использовать функцию замены строки с одним регулярным выражением. Предполагая под специальными символами, вы имеете в виду все, что не буква, вот решение:
источник
str.replace(/[^a-zA-Z0-9]/g, "")
str.replace(/[^a-zA-Z0-9 ]/g, "");
уведомление, между 0-9 и] есть пробелВы можете сделать это, указав символы, которые хотите удалить:
В качестве альтернативы, чтобы изменить все символы, кроме цифр и букв, попробуйте:
источник
/[^a-zA-Z0-9]/g
()
иwhitespaces
в строке.text().replace(/[ ()]/g, '')
Первое решение не работает для любого алфавита UTF-8. (Это будет вырезать текст, такой как Привіт). Мне удалось создать функцию, которая не использует RegExp и использует хорошую поддержку UTF-8 в движке JavaScript. Идея проста, если символ равен в верхнем и нижнем регистре, это специальный символ. Единственное исключение сделано для пробелов.
Обновление: обратите внимание, что это решение работает только для языков, где есть маленькие и заглавные буквы. На таких языках, как китайский, это не сработает.
Обновление 2: я пришел к исходному решению, когда работал над нечетким поиском. Если вы также пытаетесь удалить специальные символы для реализации функции поиска, есть лучший подход. Используйте любую библиотеку транслитерации, которая выдаст вам строку только из латинских символов, а затем простой Regexp сделает всю магию удаления специальных символов. (Это будет работать и для китайцев, и вы также получите дополнительные преимущества, сделав
Tromsø
==Tromso
).источник
Я не знаю JavaScript, но разве это невозможно с помощью регулярных выражений?
Нечто подобное
[^\w\d\s]
будет соответствовать чему угодно, кроме цифр, символов и пробелов. Было бы просто вопросом найти синтаксис в JavaScript.источник
Я попробовал очень креативное решение Seagul, но обнаружил, что оно рассматривает числа также как специальные символы, которые не соответствуют моим потребностям. Итак, вот мой (отказоустойчивый) твик решения Seagul ...
источник
reg
в своей первой функции.искать не все (символы слова || пробел):
источник
Попробуйте использовать это
здесь ^ карат для отрицания \ w для [a-zA-Z0-9_] символов слова и \ s для пробела / [] / gi для глобального
источник
точка (.) не может считаться особенной. Я добавил условие ИЛИ в ответ Мозфета и Чайки:
источник
источник
Чьи специальные символы вы хотите удалить из строки, подготовьте их список, а затем пользовательская функция замены javascript для удаления всех специальных символов.
или вы можете запустить цикл для всей строки и сравнить один-единственный символ с кодом ASCII и создать новую строку.
источник