我有以下字符串:
/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]]*)?)"
有人能帮帮我吗?
答案 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]]*)?).*
查看最后的?
和.*