使用正则表达式检测URL

时间:2017-02-09 21:36:47

标签: javascript regex

我正在一个网站上工作,我需要一些代码的帮助,如果网址是

,评估为真的代码

stackoverflow.com/users/anytext

但不是当网址

stackoverflow.com/users /

这是我的代码:



<style>
.hidden {
    display: none;
}
&#13;
<body>
    <div style = 'height:200px; width:200px; background-color: blue;' class = 'testbox' id = 'testbox'></div>
    <script>
        function storeurl() {
            var testbox = document.getElementById('testbox');
            varurl = document.URL; // it should be Global variable, so remove var
        	
          
            if (varurl == 'file:///C:/Users/laptop%202/Desktop/test.html') { /* Need this to detect the url */
                if(!testbox.classList.contains('hidden')){
        		    testbox.classList.add("hidden");
        		};
        	}
            else {
        	    return varurl;
        	};
        };
    
        document.onclick = storeurl;
    </script>
</body>
&#13;
&#13;
&#13;

我试图用纯Javascript来实现这一目标。我正在研究正则表达式但没有太多运气。

2 个答案:

答案 0 :(得分:1)

不使用正则表达式:

var url = "http://stackoverflow.com/users/";

var test1 = "http://stackoverflow.com/users/anything";
var test2 = "http://stackoverflow.com/users/";

console.log(test1.length > url.length && test1.startsWith(url));
console.log(test2.length > url.length && test2.startsWith(url));

(但可能不像使用正则表达式那样灵活....)

干杯!

答案 1 :(得分:0)

您可以使用以下正则表达式:

stackoverflow\.com\/users\/[^\s]+$
  • 您需要转发./
  • 等特殊字符
  • [^s]匹配除空白字符以外的任何内容。您也可以在.
  • 使用任何内容
  • +至少匹配前一个字符(此处为[\s]
  • $字符串结尾

这是JavaScript中的一个示例:

&#13;
&#13;
var regex = /stackoverflow\.com\/users\/[^\s]+$/
var text1 = "http://stackoverflow.com/users/";
var text2 = "http://stackoverflow.com/users/anything";

console.log(!!text1.match(regex));
console.log(!!text2.match(regex));
&#13;
&#13;
&#13;