У меня такое чувство, что это будет глупый вопрос, но я полностью озадачен.Регулярные выражения - Замена XRegExp
Я использую библиотеку XRegExp для Javascript для генерации регулярного выражения, которое соответствует любому слову в любом алфавите и не соответствует словам с цифрами, пунктуацией или специальными символами. Библиотека находится здесь: http://xregexp.com/
Это то, что я до сих пор:
var tests = [
"Hello",
"Hello789",
"Hello£*&£",
"你好世界",
"你好世界((£&"
];
var reg = XRegExp('^\\p{L}+$');
for (var i = 0; i < tests.length; i++) {
console.log (tests[i] + " : " + (reg.test(tests[i]) ? "true" : "false"));
}
Это производит следующий вывод:
Hello : true
Hello789 : false
Hello£*&£ : false
你好世界 : true
你好世界((£& : false
Я знаю, что reg
сопрягает правильно, но как его использовать в замене так, чтобы номера, знаки препинания и специальные символы были удалены? Выход я хочу это:
Hello : Hello
Hello789 : Hello
Hello£*&£ : Hello
你好世界 : 你好世界
你好世界((£& : 你好世界
Это те вещи, которые я пробовал до сих пор, не имели успеха:
XRegExp.replace(tests[i], '^\\p{L}+$', ''));
XRegExp.replace(tests[i], '\\p{L}+$', ''));
XRegExp.replace(tests[i], '^\\p{L}', ''));
XRegExp.replace(tests[i], '\\p{L}', ''));
Все это возвращает ту же строку, которую я дал им, без изменений в все. У любого есть идея, что я делаю неправильно?
Вы забыли присвоить результат переменной? –
Хотелось бы, чтобы все было так просто! Но нет, я определенно получаю результат – Emma
Возможно, вы должны точно проверить, что именно сопоставляется, а не просто 'test'. –