JavaScript 搜索问题

2024-01-02

我有一段代码可以在表格中搜索某个短语。一旦找到该短语,它就会将当前单元格的innerHTML 返回到页面顶部附近的div。

我遇到的问题是这样的:

除非要搜索的短语包含任何特殊字符(括号和与号等),否则代码可以完美运行。我尝试修改“Western & Central" to "Western & Central"但不幸的是,代码仍然无法找到该短语。

代码如下:

// Function for searching tables for specific map/device combination.
function findMap(map, device)
{
var flag = false;   // to check if the map has been found yet

// Add <strong> tags to map string so it is easier to search for
var mapstring = "<strong>" + map;
var map_regex = new RegExp( mapstring,'i');

// create array of tables
var tables = document.getElementsByTagName('table');

for (var t = 2; t < tables.length; t++)
{
    // create array of rows
    var tablerows = tables[t].rows;
    for (var r = 2; r < tablerows.length; r++)
    {
        currentRow = tablerows[r];

        // Check if current row contains map name
        if (currentRow.innerHTML.match(map_regex))
        {
            var tablecells = currentRow.cells;
            for (var c = 1; c < tablecells.length; c++)
            {
                currentCell = tablecells[c];
                // Check if current cell contains device name
                if (currentCell.innerHTML.match(device))
                {
                    document.getElementById("boxy2").innerHTML = currentCell.innerHTML;
                    flag = true;
                }
                if (flag == true) return; 
            }
            if (flag == true) return; 

            // search for x20 if 920 was not found etc
            if (device == "910")
                device = "x10";
            else if (device == "920")
                device = "x20";
            else if (device == "930")
                device = "x30";
            else if (device == "940")
                device = "x40";
            else if (device == "950")
                device = "x50";

            // search cells again
            for (var c = 1; c < tablecells.length; c++)
            {
                currentCell = tablecells[c];
                if (currentCell.innerHTML.match(device))
                {
                    document.getElementById("boxy2").innerHTML = currentCell.innerHTML;
                    flag = true;
                }
                if (flag == true) return;
            }
            if (flag == true) return;
        }
        if (flag == true) return; else  { document.getElementById("boxy2").innerHTML="Map not available on this device."; }
    }
}

}

任何有关此事的帮助将不胜感激!


由于您只是想检查特定字符串是否存在,我认为如果您使用,您的解决方案可能会更强大indexOf http://www.w3schools.com/jsref/jsref_IndexOf.asp而不是正则表达式。

使用正则表达式,如果您正在寻找特殊字符,例如[ or ] or ( or )那么你需要逃避它们,这只是我认为你不需要引入的另一层复杂性。

因此,请尝试替换正则表达式用法,例如......

if (currentRow.innerHTML.match(map_regex))

有了这个...

if (currentRow.innerHTML.indexOf(mapString)!=-1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 搜索问题 的相关文章

随机推荐

  • 向其他活动授予 Uri 权限

    我正在尝试从设备库获取图像 然后在另一个活动中显示它 我的活动中的代码 private void startGallery Intent intent new Intent Intent ACTION GET CONTENT intent
  • 防火墙是否会阻止端口 80 上的非 HTTP 流量?

    谁能确认在端口 80 上使用持久传出 TCP 连接不会被绝大多数消费者防火墙阻止 这是基于 HTTP 在 TCP 上运行这一事实的假设 但当然理论上可以分析数据包 问题是大多数消费者防火墙是否这样做 该功能称为 ALG 应用层网关 这是防火
  • Xcode AX 查找问题 - 仅发生在真实设备上

    尽管此错误令人担忧 但不会使应用程序崩溃 我无法确定为什么会发生这种情况 尽管我发现它只在我打电话时才会发生present picker animated true where picker is a UIImagePickerContro
  • 监听集合添加/更改作为视图的模型属性

    我有一个测量视图 它有一个关联的测量模型 它有两个集合 RepresentationsCollection 和 BeatsCollection 测量视图具有嵌套的子表示视图 每个表示视图都有自己的表示模型 并且所有表示模型共享对测量视图的
  • 多项选择题和答案的 MongoDB 模式设计

    我不擅长 MongoDB 设计 我需要设计数据库方面的帮助 最好的存储结构是什么有答案选择的问题 and 候选人的回答 每位考生将获得一套 12 个问题 如果考生在第一次考试中未通过 则可以再参加 2 次考试 因此 在每次考试中 考生每次都
  • UITabBarController 中奇怪的界面错误 UIScrollView。可以被其他人复制吗?

    我的 UIScrollView 出现了一个奇怪的界面错误 但我不知道如何解决它 我只写了一行代码 如下所示 它是一个空白项目的设置 很容易重现 Setting 我有一个UIScrollView其中包含一个UISegmentedControl
  • Swift 中带有超链接文本的 UITextView

    我有文本字段 我想要一些可点击的文本 以下是我的代码 请查看并感谢 let string Google let linkString NSMutableAttributedString string string linkString ad
  • 使用Mercurial分离三个版本:官方/开发/测试/

    我正在部署一个由几十个文件和文件夹组成的Python模块 我使用 Mercurial 来管理软件变更 我想将同一个模块保留在三个分支中 官方分支 团队使用的 开发分支 这可能不止一个开发分支 和测试分支 不是官方分支的测试 而是一个分支 与
  • 根据其他数据帧 python 中的值有条件地在数据帧中添加一列

    我在 pandas df 有一张桌子 id product 1 count 1 100 10 2 200 20 3 100 30 4 400 40 5 500 50 6 200 60 7 100 70 我在数据框 df2 中还有另一个表 p
  • 转换为 swift 3 后 Tests.swift 文件中没有这样的模块“Firebase”

    将项目转换为 swift 3 后 我在 Test swift 文件中收到此错误 No such module Firebase Command usr bin ditto failed with code 1 这是否意味着我必须更新 fir
  • 无法连接到另一个 Linux 系统上运行的 Docker 服务器

    我在 VirtualBox 的两个 Linux 操作系统上安装了 Docker VirtualBox 安装在我的 MAC OS X 10 11 笔记本电脑上 Linux操作系统版本的详细信息如下 CentOS 7 0服务器充当 Docker
  • 如何使用 d3.js 导入 XML 数据?

    有人可以提供一个如何使用 d3 从 XML 文件导入数据的基本示例吗 我的 XML 文件如下所示
  • 无法读取未定义的属性“pushState”

    我对 React Router 有一个简单的配置 我还有另一个基本上用 包裹的 它有效 但是这个没有 当然我尝试使用不同的实现 就像答案中建议的那样 这个帖子 https stackoverflow com questions 310790
  • 获取标记某个属性的所有属性

    我在那里有类和属性 有些属性可以标记属性 这是我的LocalizedDisplayName继承自DisplayNameAttribute 这是获取类的所有属性的方法 private void FillAttribute Type type
  • 配置自定义数据类型映射以与 System.Data.SqlClient.SqlParameter 一起使用

    我有一个名为CaseInsensitiveString这只是一个包装器 允许我的程序使用字符串而不关心它们的大小写 不过 当它持久化到数据库时 它与常规字符串没有什么不同 所以我希望能够将它与System Data SqlClient Sq
  • 添加索引以加快地理编码器附近的搜索速度

    在我的 Rails 应用程序中 我具有允许查找最接近当前登录用户的用户的功能 我正在为此使用地理编码器 gem 在用户模型中 我的范围如下 scope close to gt user distance where not id user
  • PostgreSQL JDBC 连接在 Android 4.0 上失败

    有谁知道我该怎么做才能使 JDBC 连接在 Android 4 0 上工作 它在 Android 1 6 2 3 上运行良好 我使用 Dave Cramer 的构建 http groups google com group pgandroi
  • 有没有办法观看 WPF 路由事件?

    我想知道是否有一种方法可以监视 WPF 应用程序中引发的所有 RoutedEvent 一种将有关触发到控制台的事件的一些信息写入控制台的方法将非常适合查看正在发生的情况 我找到了另一种方法 我已将其添加到我的用户控件的加载处理程序中 var
  • 列出多个 $query->set 的正确方法

    列出多个 query gt set 的正确方法是什么 我可以拥有多个 query gt set就像下面的 代码 A 或者我应该将它们合二为一 如果是 您将如何将这三者结合起来 query gt set代码 我尝试将它们组合在下面的 代码 B
  • JavaScript 搜索问题

    我有一段代码可以在表格中搜索某个短语 一旦找到该短语 它就会将当前单元格的innerHTML 返回到页面顶部附近的div 我遇到的问题是这样的 除非要搜索的短语包含任何特殊字符 括号和与号等 否则代码可以完美运行 我尝试修改 Western