正则表达式 - 如何在jquery中创建正则表达式

时间:2014-09-02 15:16:21

标签: jquery regex

我想要验证网址但不是完整的网址。我想检查字符串是否包含comco.uk,然后是/,然后在/后面有任何字符。我并不为它最终开始的事情烦恼。所以这将是匹配co.uk/fewfwecom/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();

        }
    });
});

3 个答案:

答案 0 :(得分:0)

您可以尝试下面的正则表达式。除了\n之后的/字符,它将允许任何字符。

(?:com|co\.uk)\/.+

DEMO

如果您想在最后一个/符号后面添加字母,请尝试以下正则表达式。

(?:com|co\.uk)\/[A-Za-z]+

DEMO

答案 1 :(得分:0)

当你的正则表达式应该是一个RegExp文字时,你将你的正则表达式放在一个字符串中。

更改

var regex = '/com|co\.uk\/[a-zA-Z]/';

var regex = /com|co\.uk\/[a-zA-Z]/;

答案 2 :(得分:0)

正确的答案是 Ben Avinash Raj 的答案的组合。您需要对此进行两项更改才能正常工作,并且它们本身都不够。我还建议从\.开始,在comco.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。

这里有很多可能的变化,而正确的变化将取决于你的具体情况。