2017-02-09 109 views
-1

我的工作在網站上,我需要一個代碼幫助,將評估爲true,如果該URL是檢測URL使用正則表達式

stackoverflow.com/users/anytext

但不當網址

stackoverflow.com/users/

這裏是我的代碼:

<style> 
 
.hidden { 
 
    display: none; 
 
}
<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 
 
     \t 
 
      
 
      if (varurl == 'file:///C:/Users/laptop%202/Desktop/test.html') { /* Need this to detect the url */ 
 
       if(!testbox.classList.contains('hidden')){ 
 
     \t \t  testbox.classList.add("hidden"); 
 
     \t \t }; 
 
     \t } 
 
      else { 
 
     \t  return varurl; 
 
     \t }; 
 
     }; 
 
    
 
     document.onclick = storeurl; 
 
    </script> 
 
</body>

我試圖用純JavaScript來實現這一目標。我正在看正則表達式,但沒有多少運氣。

+0

'/stackoverflow\.com\/users \ /.+/。test(url)' – dandavis

回答

0

您可以使用下面的正則表達式:

stackoverflow\.com\/users\/[^\s]+$ 
  • 你需要逃避特殊字符,如./
  • [^s]匹配除空白字符什麼。你也可以使用任何這裏.
  • +比賽至少前面的字符中的一個(這裏[\s])字符串的
  • $結束

這裏是JavaScript的一個例子:

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));

+0

非常感謝!這是非常豐富的。儘管如此,我仍然有問題讓它以我想要的方式工作。基本上我試圖做的是抓住當前的網址,並在if語句中比較兩個。如果url是例如stackoverflow/faculty/anytext,它會隱藏一個元素。但如果它只是stackoverflow/faculty /它會顯示它 –

+0

你可以使用'if(!! url.match(regex)){// hide}'或'if(regex.test(url)){//隱藏}}'而url被定義爲'window.location.href'。或者你有什麼問題? –

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));

(但也許不夠靈活使用正則表達式時....)

乾杯!