【发布时间】:2015-07-01 13:40:53
【问题描述】:
我哪里错了?即使是一个错误也会有所帮助。
我有一个 HTML 输入和一个提交按钮。这个想法是:
- 提交搜索字符串
- 获取字符串值。
- 将字符串值与正则表达式进行比较。
- 如果合法,则在 DOM 中查找字符串的实例。
-
然后滚动到匹配字符串的第一个实例,因为它位于 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