我想要验证网址但不是完整的网址。我想检查字符串是否包含com
或co.uk
,然后是/
,然后在/后面有任何字符。我并不为它最终开始的事情烦恼。所以这将是匹配co.uk/fewfwe
或com/Grege
这是我到目前为止所做的:
$(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();
}
});
});
答案 0 :(得分:0)
您可以尝试下面的正则表达式。除了\n
之后的/
字符,它将允许任何字符。
(?:com|co\.uk)\/.+
如果您想在最后一个/
符号后面添加字母,请尝试以下正则表达式。
(?:com|co\.uk)\/[A-Za-z]+
答案 1 :(得分:0)
当你的正则表达式应该是一个RegExp文字时,你将你的正则表达式放在一个字符串中。
更改
var regex = '/com|co\.uk\/[a-zA-Z]/';
到
var regex = /com|co\.uk\/[a-zA-Z]/;
答案 2 :(得分:0)
正确的答案是 Ben 和 Avinash Raj 的答案的组合。您需要对此进行两项更改才能正常工作,并且它们本身都不够。我还建议从\.
开始,在com
或co.uk
之前要求一个点。
var regex = /\.(?:com|co\.uk)\/[a-z]/i;
重要提示:这只需要.com/
或.co.uk/
后跟至少一个字母。它不仅仅需要字母,只是/
之后的第一件事是字母。这似乎是一个奇怪的要求,可能不是你想要做的。
您最终不需要+
才能使示例代码正常工作,但实际版本可能需要它。一些可能的变化:
var regex = /\.(?:com|co\.uk)\/./i;
- 允许正斜杠后的任何字符var regex = /\.(?:com|co\.uk)\/[a-z]+$/i;
- 只允许使用正斜杠后的字母var regex = /\.(?:com|co\.uk)\/[\w?&%=-]+$/i;
- 将匹配大多数URI var regex = /\S+\.(?:com|co\.uk)\/\S+$/i;
- 只要没有空格,就会匹配整个URI。这里有很多可能的变化,而正确的变化将取决于你的具体情况。