/ / Як використовувати порожній рядок у Regex Literal? - javascript, regex

Як використовувати порожній рядок у Reggex Literal? - javascript, regex

Я думав, що, наприклад, пропущу кожну букву в рядку foo стає f o o

Я думаю, що таке "foo".replace(//g, " "); ( в г прапор заміняти кожен екземпляр, інакше я б не хотів регулярного вираження, чи б я :) )

У мене є лише одна незначна проблема ... у JavaScript, // це коментар, тому він не працює.

Як це можна досягти набравши регекс-літерал (з косою рисою), або це неможливо, і я повинен був би створити (за набравши) об'єкт Regex?

Відповіді:

1 для відповіді № 1

Є кілька способів зробити це. (Ці методи класифікуються від найкращої практики до гіршої. Я рекомендую перший, і я високо відбийте останні.)


Використовуйте split/join, що було б кращим методом із меншими витратами. Тут немає потреби в регулярному вираженні:

"foo".split("").join(" ");

Або скористайтеся RegExp конструктор

"foo".replace(new RegExp("", "g"), " ");

Або додайте марну групу (не рекомендується, оскільки це незрозуміло на перший погляд):

"foo".replace(/()/g, " ");

Ще один коментар, заснований на вашому останньому абзаці:

Як я можу досягти цього за допомогою прямого регексу, чи це неможливо, і мені доведеться створити об'єкт Regex?

Вони буквально те саме:

скріншот

"використання літералу регулярного вираження ... або ... об'єкт Regex" не має сенсу, тому що літеральний регулярний вираз є a RegExp об'єкт


2 для відповіді № 2

Спробуйте скористатися цим регулярним виразом:

/.(?!$)/g

Ви можете прочитати це як: "Знайдіть усі діаграми, крім останньої".

Опис

Візуалізація регулярного виразу

Зразок коду

"foo".replace(/.(?!$)/g, "$& ");

Демонстрація

http://regex101.com/r/xH9bK1


0 для відповіді № 3

Ви можете скористатись B (все, крім межі слова)

"foo".replace(/B/g," ");

або якщо ви хочете замінити в кожному місці

"foo".replace(/B|b/g," ");