Snažím sa overiť adresu URL, ale nie celú adresu URL. Chcem skontrolovať, či reťazec obsahuje com
alebo co.uk
a potom /
a potom má znaky /. Nebudem sa obťažovať tým, čo začína tým, že to končí. Takže by to bol zápas co.uk/fewfwe
alebo com/Grege
To je to, čo mám za sebou:
$(document).ready(function () {
$("#SavePage").click(function (event) {
var regex = "/com|co.uk/[a-zA-Z]/";
var val = $("#URL").val();
if (val.match(regex) == null) {
alert("test");
event.preventDefault();
}
});
});
odpovede:
0 pre odpoveď č. 1Môžete skúsiť nižšie uvedený výraz. Umožnilo by to ľubovoľný znak okrem n
znak po poslednej /
.
(?:com|co.uk)/.+
Vyskúšajte nižšie uvedený regulárny výraz, iba ak chcete povoliť abecedy po poslednom /
symbol.
(?:com|co.uk)/[A-Za-z]+
0 pre odpoveď č. 2
Vložíte svoj regulárny reťazec do reťazca, ak by to malo byť doslovné znenie RegExp.
zmena
var regex = "/com|co.uk/[a-zA-Z]/";
na
var regex = /com|co.uk/[a-zA-Z]/;
0 pre odpoveď č. 3
Správna odpoveď je kombinácia ben"a Avinash RajOdpovede. Aby to fungovalo, musíte urobiť obe zmeny a ani jedna z nich nebude sama osebe postačovať. Navrhujem tiež začať s .
, požadovať bodku skôr com
alebo co.uk
.
var regex = /.(?:com|co.uk)/[a-z]/i;
Dôležité: Toto si bude vyžadovať iba to, aby .com/
alebo .co.uk/
za ním nasleduje najmenej jedno písmeno. Nevyžaduje sa iba písmená, iba to, že prvá vec, ktorá nasleduje po /
je list. Vyzerá to ako čudná požiadavka a pravdepodobne to nie je to, čo sa snažíte urobiť.
Nepotrebujete a +
na konci, keď bude fungovať váš vzorový kód, ale verzia v skutočnom svete smieť potrebovať to. Niektoré možné variácie:
var regex = /.(?:com|co.uk)/./i;
- Umožňuje ľubovoľný znak za lomkouvar regex = /.(?:com|co.uk)/[a-z]+$/i;
- Umožní iba písmená za lomkouvar regex = /.(?:com|co.uk)/[w?&%=-]+$/i;
- Bude zodpovedať väčšine URIvar regex = /S+.(?:com|co.uk)/S+$/i;
- Bude sa zhodovať s celým URI, pokiaľ nebude medzera.
Existuje veľa možných variácií a tá správna bude závisieť od špecifík vašej situácie.