正则表达式 - 在主表达式之前和之后排除字符串

时间:2017-01-10 17:10:07

标签: regex regex-lookarounds

给出三个URL:

  • http://stackoverflow.com/questionsss/3003310 - >真
  • http://stackoverflow.com/questionsss/3003310?s=1 - > false(找到s = 1)
  • http://stackoverflow.com/questionsss?s=1&N=3003310 - > false(找到s = 1)

如何在JS中编写一个Regex,如果在URL中找到3003310则返回true,如果在URL中的任何位置找到s = 1,则返回false。

谢谢!

2 个答案:

答案 0 :(得分:0)

也许是like this

^(?=.*3003310)(?!.*\bs=1\b).*
对于每种情况,都是积极的前瞻和消极的前瞻。 \b周围的s=1字词边界可防止误导,例如sass=1s=100

答案 1 :(得分:0)

<强> REGEXP:

(.*\?s=1.*)
如果结果等于正则表达式匹配,那么你应该做一个方法。它将返回FALSE,否则为TRUE。

原文:

http://stackoverflow.com/questionsss/3003310 -> true
http://stackoverflow.com/questionsss/3003310?s=1 -> false (s=1 found)
http://stackoverflow.com/questionsss?s=1&N=3003310 -> false (s=1 found)

<强>结果:

http://stackoverflow.com/questionsss/3003310?s=1 -> false (s=1 found)
http://stackoverflow.com/questionsss?s=1&N=3003310 -> false (s=1 found)

<强>算法:

Print(!OriginalText.equals(MethodCheck(Result)) // if empty. it will be TRUE

请参阅:https://regex101.com/r/335HNW/1