验证正则表达式中的字符串模式

时间:2014-03-20 06:45:30

标签: javascript regex

我有以下字符串:

  /xyz/10.2005/abc.d10.1/example

这里我要验证的是,“/ xyz /”之后应该没有空格。

喜欢它不应该接受字符串是:

  /xyz/ 10.2005/abc.d10.1/example

但如果字符串是:

,它应该接受
  10.2005/abc.d10.1/example

如何修改以下正则表达式以验证上述内容?

  REGEX- "^\\S*((10(\\.\\d+)+)\\/([^\\/]+)(\\/\\d+[\\.+[a-zA-Z\\d]]*)?)"

有人能帮帮我吗?

3 个答案:

答案 0 :(得分:1)

这可能就是你要找的东西(它是一个文字,如果你真的需要使用RegExp构造函数,你可以把它转换为字符串):

var re = /^(\/\w+\/10|\s*10)\.\d+\/\w+\.\w\d+\.\d\/\w{7}/;

var s = '/xyz/10.2005/abc.d10.1/example';
var t = '/xyz/ 10.2005/abc.d10.1/example';
var u = ' 10.2005/abc.d10.1/example';

console.log(
            's:' + re.test(s) + '\n' +   // true
            't:' + re.test(t) + '\n' +   // false
            'u:' + re.test(u) + '\n'     // true
);

它不仅仅是在/ xyz / part之后验证空间,我希望其余的都是你想要的。

答案 1 :(得分:0)

这是一个很长的RegEx:

/(?:\/[a-z]+\/)?\10\.\d{4}\/[a-z]{3}\.[a-z]\d{2}\.\d\/[a-z]{7}/i

//  or the following if you don't want exact occurrences

/(?:\/[a-z]+\/)?10\.\d+\/[a-z]+\.[a-z]\d+\.\d\/[a-z]+/i

匹配

/xyz/10.2005/abc.d10.1/example

10.2005/abc.d10.1/example

?:使群组无法捕获 括号结尾后的?符号表示它是可选的 接下来是相当简单的RegEx。

有关详细说明,请here's a demo

答案 2 :(得分:0)

实际上您需要将其设为lazy正则表达式

将其更改为此

^\\S*?((10(\\.\\d+)+)\\/([^\\/]+)(\\/\\d+[\\.+[a-zA-Z\\d]]*)?).*

查看最后的?.*

演示:http://regex101.com/r/zJ7yX8