regex-如何在jquery中创建正则表达式
我想验证一个url,但不是完整的url。我想检查字符串是否包含regex-如何在jquery中创建正则表达式,jquery,regex,Jquery,Regex,我想验证一个url,但不是完整的url。我想检查字符串是否包含com或co.uk,然后是/,然后是/。我不在乎它的开头和结尾。所以这将是一个匹配co.uk/fewfwe或com/Grege 这就是我到目前为止所做的: $(document).ready(function () { $('#SavePage').click(function (event) { var regex = '/com|co\.uk\/[a-zA-Z]/'; va
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();
}
});
});
你可以试试下面的正则表达式。它将允许除最后一个
/
之后的\n
字符以外的任何字符
(?:com|co\.uk)\/.+
仅当您希望允许字母在最后一个/
符号之后时,请尝试下面的正则表达式
(?:com|co\.uk)\/[A-Za-z]+
您正在将正则表达式放入字符串中,而它应该是一个正则表达式文本 改变
var regex = '/com|co\.uk\/[a-zA-Z]/';
到
正确答案是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,只要没有空格
这里有很多可能的变化,正确的变化将取决于您的具体情况。您希望将
com | co\.uk
分组如下:/(com | co\.uk)\/[a-zA-Z]/
@RevanProdigalKnight您需要在char类之后添加+
。我就是这样做的。不幸的是,该注释的编辑期似乎已过。为了便于将来参考,regex周围的引号是不必要的,并且在使用.match(regex)
时,实际上会导致字符串到regex的转换。在JS中,regex文本由/
分隔(因此您的将是var regex=/com | co\.uk\/[a-zA-Z]/;
)
var regex = /\.(?:com|co\.uk)\/[a-z]/i;