【问题标题】:How to validate a regex expression in javascript?如何在javascript中验证正则表达式?
【发布时间】:2017-01-26 23:01:49
【问题描述】:

我有一个用户表单,它使用户能够输入正则表达式并提交到服务器。这些正则表达式的服务器端验证存在于现有用户中,但我需要 javascript 正则表达式验证以在用户输入他的正则表达式后立即提示用户。

一些示例正则表达式:

(.*?)_(.*?)_.*_(INS|UPD|DEL|UPSERT)$    -- CORRECT
^Schedule_(.a*)                         -- CORRECT
(IP(.*?)_(.*?)_.*_(INS|UPD|DEL|UPSERT)$ -- WRONG

注意:正则表达式将在服务器端(Elasticsearch)运行

【问题讨论】:

  • 这些正则表达式是否会在浏览器中运行?基本上,您认为有效的正则表达式是什么——JS 正则表达式有效吗?珀尔?使用的语法是否有限制,比如说,你可以有反向引用或环视吗?
  • @vlaz:这些正则表达式不会在浏览器中运行。它被提交到服务器(java),然后交给弹性搜索查询以获得结果。所以elasticsearch regex 应该是有效的。
  • 我不熟悉 elasticsearch 认为有效与否,但如果你有服务端验证,你能把它翻译成 JS 吗?它可能需要一些重组,但我想它会起作用。

标签: javascript jquery angularjs validation elasticsearch


【解决方案1】:

使用try/catchRegExp 构造函数,您可以跟踪它是否有效Regex。请查看下面的 sn-p 以获得更多了解。

var isValid = true;
try {
  new RegExp("(.*?)_(.*?)_.*_(INS|UPD|DEL|UPSERT)$");
} catch(e) {
  isValid = false;
}

if(!isValid) alert("This is invalid regular expression");
else alert("This is valid regular expression");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 2012-03-03
    • 2023-03-23
    相关资源
    最近更新 更多