2015-07-01 23 views
1

我哪里错了?即使有一个错误会有所帮助。内部网站搜索jquery反对RegExp

我有一个HTML输入和一个提交按钮。我们的想法是:

  1. 提交搜索字符串
  2. 获取字符串值。
  3. 将字符串值与正则表达式进行比较。
  4. 如果合法,请在DOM中查找该字符串的实例。
  5. 然后滚动到匹配的字符串的第一个实例,因为它坐落在DOM。

    $("#submit").on("click", function() {  
    //regex to be compared against 
        var search = new RegExp(); 
        search = /(^\w[A-z]+)$|(^\d[0-9\.x\.X\.m\.M]+)/; 
    
        //grab the string value from the search input 
        var userin = $("#searchin").val(); 
        var compare = userin.test(search); 
    
        if (compare === true) { 
         var treebody = $('html, body').contents().filter(function (userin) { 
          if ($('html, body').contents() === userin) { 
           $('html, body').animate({'scrollTop' : $(treebody).position().top}, 700) 
    
          } else { 
           alert("Please search again or scroll down to find your desired content"); 
          } 
         }); 
        } else { 
         alert("Sorry, we couldn't match your search. Please try a region or place or a billboard size e.g. 9x13 "); 
        } 
    }); 
    
+0

1.'[A-Z] +'2.使用'm'修饰符。 –

+0

你的正则表达式看起来很奇怪。它是“一个字母或一个数字或一个下划线,后跟一个或多个字母”或“一个数字,后面跟一个数字或点或x或点或X或点......一次或多次”。例如,所有重复的点都什么都不做。这应该不会破坏代码。 –

回答

0

更改线路

var compare = userin.test(search); 

应该

var compare = search.test(userin); 

还要检查你的正则表达式。这里有一个很好的参考RegEx