【问题标题】:Internal Site Search Jquery against a RegExp针对 RegExp 的内部站点搜索 Jquery
【发布时间】:2015-07-01 13:40:53
【问题描述】:

我哪里错了?即使是一个错误也会有所帮助。

我有一个 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 ");
        }
    });
    

【问题讨论】:

  • 1. [A-z]+ 2. 使用 m 修饰符。
  • 你的正则表达式看起来很奇怪。它是“一个字母或数字或下划线后跟一个或多个字母”或“一个数字后跟一个数字或点或 x 或点或 X 或点......一次或多次”。例如,所有重复的点什么都不做。但这不应该破坏代码。

标签: javascript jquery regex search internal


【解决方案1】:

换行

var compare = userin.test(search);

应该是

var compare = search.test(userin);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 2014-02-14
    • 1970-01-01
    相关资源
    最近更新 更多