Javascript регулярные выражения разрешают только \ w и исключительные символы - PullRequest
1 голос
/ 08 февраля 2020
var string = "Ç<>iğ^%+/dem Öçğö";
var check_w = string.search(/\w/g); //sadly this not accept "öığüşç" characters
var check_utf = string.search(/[öığüşç]/gi);

if (check_w != -1 && check_utf != -1) {
   var replace = string.replace(/\W/gi, '');
   document.write(replace); //result is: "idem" but i want result: "Çiğdem Öçğö"
}
else if (check_w != -1 && check_utf == -1) {
  var replace = string.replace(/\W/gi, '');
  document.write(replace); //no problem
}
else if (check_w == -1 && check_utf != -1) {
  //i dont know how to replace other characters but not "öığüşç" that characters. For example: <öı^&^ğ i want result: öığ
}
else if (check_w == -1 && check_utf == -1) {
  alert('error'); //no problem
}

Я не знаю, как использовать переменную "check_utf", чтобы сделать исключительную ...

Редактировать: Обычно я использую замену, чтобы заменить только специальные символы, но я хочу сделать так, потому что я не хотите разрешить символы китайской аравии et c ... (например, сделать белый список)

1 Ответ

2 голосов
/ 08 февраля 2020

Если вы пытаетесь удалить все символы, которые не являются ни пробелами, \w символами или одним из следующих «исключительных» символов, öığüşç, то это должно сделать следующее:

let string = "Ç<>iğ^%+/dem Öçğö";
let replace = string.replace(/[^\wöığüşç ]/gi, '');
console.log(replace);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...