Первый вопрос здесь, так что, пожалуйста, будьте любезны :)
Я очень мало знаю о регулярных выражениях, но я использую их в текущем проекте, которые удаляют специальные символы из строки. Похоже на это ...
newWord = newWord.replace(/[^0-9A-Za-z ]/g, "");
Он работает хорошо, но мне нужно немного изменить его, чтобы он не удалял символ £ (GBP).
Я пробовал несколько вещей, но, не изучая регулярные выражения с самого начала, я просто предполагаю, и ничего из этого не работает.
Кто-нибудь может помочь?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


newWord = newWord.replace(/[^0-9A-Za-z£ ]/g, "")
или с escape-последовательностью unicode
newWord = newWord.replace(/[^0-9A-Za-z\u00a3\u0020]/g, "")
С помощью этого регулярного выражения вы удаляете все символы, которых нет в предоставленном вами списке. Символ minus используется для обозначения диапазона, поэтому любой символ, не входящий в 0-9 (0,1,2,3, .. 9) A-Z и a-z, заменяется ничем (""). Добавив знак £, он больше не заменит его ничем.
У Триптиха был хороший момент - вне ASCII наборы символов не дают никаких гарантий. Вам лучше использовать \ u00a3.
Я также рекомендовал бы использовать такую escape-последовательность для символа пробела, чтобы улучшить читаемость, потому что ее легко упустить, если это фактический пробел (я так и сделал, когда впервые прочитал вопрос).
Убедитесь, что и данные, и скрипт закодированы в одной и той же кодировке. В противном случае замена может пойти не так. Как указал Джонатан, вам лучше использовать синтаксис Unicode.
newWord = "10 -+-sdf£";
newWord = newWord.replace(/[^0-9A-Za-z £]/g, "");
WScript.StdOut.WriteLine(newWord);