Javascript Regex имя хоста - PullRequest
       2

Javascript Regex имя хоста

0 голосов
/ 08 июня 2018

У меня есть эти URL: www.domain2.mywebsite.com / www.domain.mywebsite.co.uk / www.domain6.mywebsite.fr и многие другие из них.

Я бы хотелу меня есть функция JavaScript для if (regexforDomaine. "mywebsite". regexforextend == true) {}

Я пробовал if (location.hostname.match ('/(.) mywebsite (. ) ')) {} Но, похоже, это не работает.Я просто хочу вернуть true для всего, что соответствует mywebsite, части имени хоста.Например, когда я нахожусь на странице моего веб-сайта, любой URL-адрес из любых поддоменов должен всегда возвращать true.И возвращать false только тогда, когда меня нет на моем сайте

Есть идеи?Спасибо!

Ответы [ 3 ]

0 голосов
/ 08 июня 2018

Вы должны попробовать это:

/^www\.[a-zA-z0-9][a-zA-z0-9-]+\.mywebsite(.[a-zA-Z]{2,})+/

Мой тестовый код:

const regex = /^www\.[a-zA-z0-9][a-zA-z0-9-]+\.mywebsite(.[a-zA-Z]{2,})+/gm;
const str = `www.domain2.mywebsite.com
www.domain.mywebsite.co.uk
www.domain6.mywebsite.fr
www.domain1.mywebsite.f`;
let m;

while ((m = regex.exec(str)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
        regex.lastIndex++;
    }

    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
        console.log(`Found match, group ${groupIndex}: ${match}`);
    });
}
0 голосов
/ 08 июня 2018

if (/(.*)mywebsite(.*)/.test(location.hostname))‹‹

0 голосов
/ 08 июня 2018

Регулярные выражения в JavaScript не являются строками, как в php, и ваши (.), которые соответствуют одному символу, должны быть (.*), чтобы соответствовать любому количеству символов

try:

if (location.hostname.match(/(.*)mywebsite(.*)/)) {
    // do something
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...