Как я могу удалить каретку (^) из строки, используя RegExp в Javascript? - PullRequest
1 голос
/ 30 июня 2010

По какой-то причине я не могу найти хороший ответ для этого.

Я пытался вырваться из каретки (\ ^) и использовать гекс, восьмеричный идругие коды для символа, использующие \ xdd, \ dddd и т. д. *

Но мое регулярное выражение замены не заменит курсор (^) чем-либо.Кажется, это просто нарушает выражение.

Вот код, который я использую:


var field,myExp;    

// \x5E is supposed to represent the caret in Hex...
    myExp = / *[^a-z^A-Z^0-9\s\x5E]/gi;

field = field.replace(myExp,"");
alert(field);

Помощь!

Ответы [ 5 ]

2 голосов
/ 30 июня 2010

Фрагмент кода, который вы дали, довольно запутанный, но, основываясь на названии вопроса, если вы просто хотите заменить символ ^ чем-то другим, этого можно достичь следующим образом ...

var str1 = "test^123";
var str2 = str1.replace(/\^/g, "\x005E");
alert(str2);
1 голос
/ 30 июня 2010

Группа символов, начинающаяся с ^, является исключительной группой и будет соответствовать каждому символу, который не в [].

Если вы пытаетесь удалить любую букву, цифру или ^, измените регулярное выражение на

myExp = / *[a-zA-Z0-9^\s]/gi;
0 голосов
/ 01 июля 2010

Я нашел ответ, но вы, ребята, все помогли мне добраться туда. Спасибо!

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

ОРИГИНАЛ: repExp = / * [^ a-z ^ A-Z ^ 0-9] / ги;

ФИНАЛЬНЫЙ РЕГЭКСП: repExp = / * [^ a-zA-Z0-9] / gi;

Вышеприведенное отфильтровывает все, что не является буквой (a-zA-Z) или числом (0-9) из строки.

Спасибо, люди!

* * 1012 P.S. Пробел после начального «/» есть, потому что по какой-то причине Dreamweaver видит его как начало комментария. : - (
0 голосов
/ 30 июня 2010

Вы пытаетесь заменить или оставить все аз, аз, 0-9, пробелы и караты?

Если вы пытаетесь сохранить их, используйте только один ^ в самом начале выражения, например:

[^a-zA-Z0-9\s^]

Если вы пытаетесь заменить их всех , включая карат, использовать:
[a-zA-Z0-9^\s]

Изменить (обновленный ответ в ответ на комментарий):

Используйте
[^a-zA-Z0-9]
, чтобы сопоставить и заменить все символы, отличные от az, AZ, 0-9.

Примечание. Для проверки необходимо использовать одно и то же выражение на стороне сервера.эти поля формы, так как люди могут отключить JavaScript или просто связываться со значением POST, чтобы связываться с вашей базой данных.

0 голосов
/ 30 июня 2010

Если в качестве первого символа в наборе [] указана каретка, это означает «нет» - но только в начале. Таким образом, ваше регулярное выражение означает «(пробелы, за которыми следует) все, что не является a-z или кареткой, или A-Z, или кареткой, или 0-9 и т. Д.» Удалите все, кроме первой каретки, и вам может повезти: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...