REGEX: пытаюсь создать рег. эксп. который может найти строку в имени хоста реферера - PullRequest
2 голосов
/ 23 июля 2010

Я пытаюсь создать регулярное выражение JavaScript, которое может найти ключевое слово в имени хоста источника ссылок. Это не может быть путь к файлу, просто имя хоста. Итак ... это должно пройти:

http://keyword.com/
http://www.keyword.com/
http://keyword.example.com/
http://examplekeyword.com/

Но это не должно:

http://example.com/keyword
http://example.com/?q=keyword
http://example.com/example/keyword.php

Я также не знаю, как создать регулярное выражение. Я видел var re = new regex («фактическое регулярное выражение»); , а также mystring.search («фактическое регулярное выражение»); . Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

2 голосов
/ 23 июля 2010
^http://[^/]*keyword

Будет соответствовать, если присутствует ключевое слово.То, что он возвращает, довольно странно (http://keyword для http://keyword.com), но это наименее сложный способ, который вы можете сделать.

Если вас интересует полное имя возвращаемого хоста,

^http://[^/]*keyword[^/]*

Возвращает http://thekeywordexists.com для http://thekeywordexists.com/foo.

Существует несколько способов использования регулярных выражений в Javascript. Javascript-страница Regular-Expressions.info, вероятно, является хорошим ресурсом для этого.(Совет по производительности: создайте объект RegExp один раз и сделайте его переменной, а не создавайте его каждый раз, когда вы его используете: o)

0 голосов
/ 23 июля 2010

Я считаю, что это делает то, что вы хотите:

/^http:\/\/[^\/]*keyword\./.test('http://www.keyword.com')

Небольшое объяснение:

  • начинайте с http, затем следует :// (^http:\/\/)
  • , за которым следует все, кроме /
  • , затем keyword, затем .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...