javascript - 正则表达式匹配字符串的前 n 个字符

标签 javascript regex node.js

我正在创建一个正则表达式来根据某些文本动态查询 MySQL 数据库。我已经解析了文本,现在我需要根据文本创建一个正则表达式,该正则表达式将匹配包含文本的前 N ​​个字符且至少包含 3 个字符的字符串。到目前为止我正在这样做:

var regex = new RegExp('^' + text.substr(0, 3).replace(/[[\]{}()*+?.\\|^$\-,&#\s]/g, '\\$&'));

这可以确保前三个字符匹配,但随后我想查询数据库以查看文本的其余部分是否有任何匹配。例如,如果文本是“test string”,我想创建一个正则表达式,它将数据库中的列与“tes”、“test str”、“test string”等值进行匹配,最多只能匹配到正如正文所示。

我不太确定如何表达标题,所以希望我没有错过任何类似的问题。如果有更好的方法来查询数据库,我也愿意。

最佳答案

在普通的 MySQL 中你可以这样写:

select * from table where column like concat(left(@YOUR_INPUT, 3),  '%') and instr(@YOUR_INPUT, column);  

其中@YOUR_INPUT将是您手头的全文值(无论您将其作为参数传递[这是正确的方式:)]到查询还是将其放入MySQL变量中)。

编辑:添加了一个子句以确保仅匹配输入中包含的字符串,而不匹配其他字符串

关于javascript - 正则表达式匹配字符串的前 n 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23767165/

相关文章:

javascript - $.ajaxPrefilter() 与 $.ajaxSetup() - jQuery Ajax

javascript - 如何让组件在每次循环迭代后渲染,而不是等到循环完成?

java - 从文本文件读取 xml 时缺少 "<"

Java Regex - 拆分逗号分隔列表但排除方括号内的逗号

javascript - Steam 机器人 : Printing out items that are traded

javascript - require() 抛出 “AssertionError: missing path” - Node js

javascript - 这些逻辑运算是否相同?

javascript - 将输入的文本保存到 cookie 并在用户每次访问时显示给用户

javascript - RegExp 通过中间字符匹配来分割字符串

node.js - Node gm 水印和调整大小