【问题标题】:Javascript "Like" and "*" expression Eqv from VBA来自VBA的Javascript“Like”和“*”表达式Eqv
【发布时间】:2018-01-09 08:25:55
【问题描述】:

我最近开始使用来自 VBA 的 Javascript,我想知道是否有等效于 vba 的“like”和“*”表达式。

例子:

If test Like "01##############10*" Then

【问题讨论】:

    标签: javascript


    【解决方案1】:

    是的,您正在寻找正则表达式。例如,如果 # 表示“数字”,* 在您的示例中表示“任何东西”,则正则表达式将是 /^01\d{13}10/,例如:

    if (/^01\d{13}10/.test(test)) {
    

    上面写着:

    • ^ - 匹配字符串的开始(“开始断言”或“开始锚点”)
    • 01 - 匹配 01 字面意思
    • \d{13} - 匹配一个数字 (\d) 正好 13 次
    • 10 - 匹配 10 字面意思

    $ 锚的缺失意味着我们不在乎上述之后的内容。

    正则表达式是带有方法的对象。其中一种方法test 检查字符串是否与表达式匹配,这是可用的最基本操作之一。还有exec(查找第一个/下一个匹配项)。另一方面,字符串也有一个match 方法,它接受正则表达式并在字符串中查找匹配项。

    更多关于正则表达式:

    【讨论】:

    • 感谢您的快速帮助!
    • 同时检查regex101.com。庞大的表达式库和测试您自己的快速方法。
    【解决方案2】:

    JavaScript 有正则表达式。 使用 RegEx,您可以尝试构建“Like”或“*”之类的任何内容。

    一般来说 - 不幸的是,VBA 中可用的任何东西都可以在其他顶级语言中使用。反之亦然。

    这是搜索vi*的方法:

    var myStr = "vityata";
    if (myStr.match(/vi.*/)) {
      // your code here
    }
    

    这里还有一点: Emulating SQL LIKE in JavaScript

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多