使用正则表达式验证自定义表达式

迈尔·沙尔玛(Mehul Sharma)

如果我有一个像

${employee} and ${} should be validate

我想获取包含该模式的所有子字符串,例如

${}

并验证以$ {和}开头的字符串是否必须具有值?

假设下面的字符串

  ${employee} and ${} should be validate

它应该返回带有两个元素的数组

[$ {employee},$ {}]

并在验证后应将第二个元素显示为无效(因为它为空白)

为此,我尝试了以下代码

function fetchMatches(theString, theRegex){
    return theString.match(theRegex).map(function(el) {
        var index = theString.indexOf(el);
        return [index, index + el.length - 1];
    });
}
fetchMatches(" ${employee} and ${} should be validate",/(\$)(\{)(.*)(\})/i);

但它没有返回所需的输出。

伙计们,请提出一些帮助

威克多·斯特里比尤(WiktorStribiżew)

您可以使用以下解决方案:使用/\${[^{}]*}/gregex与String#match来获取所有匹配项,然后遍历匹配项以检查哪些匹配项具有空值:

var s = "${user.lastName}${user.firstName}${}";
var m, results = [];
var re = /\${[^{}]*}/g;
while ((m=re.exec(s)) !== null) {
  if (m[0] === "${}") {
    console.log("Variable at Index",m.index,"is empty.");
  } else {
    results.push(m[0]);
  }
}
console.log(results);

既然您提到了可以嵌套的值,则可以使用XRegExp

var s = "${user.${}lastName}${user.firstName}${}";
var res = XRegExp.matchRecursive(s, '\\${', '}', 'g', {
  valueNames: [null, null, 'match', null]
});
for (var i=0; i<res.length; i++) {
   if (~res[i]["value"].indexOf("${}") || res[i]["value"] == "") {
     console.log("The",res[i]["value"],"at Index",res[i]["start"],"is invalid.");
   } else {
     console.log("The",res[i]["value"],"at Index",res[i]["start"],"is valid.");
   }
}
<script src="http://cdnjs.cloudflare.com/ajax/libs/xregexp/3.1.1/xregexp-all.min.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自定义正则表达式-输入验证

来自分类Dev

使用自定义正则表达式来验证linkedIn url

来自分类Dev

改进自定义正则表达式

来自分类Dev

正则表达式以匹配自定义文本

来自分类Dev

正则表达式以匹配自定义文本

来自分类Dev

自定义正则表达式模式

来自分类Dev

自定义正则表达式

来自分类Dev

自定义日期格式的正则表达式

来自分类Dev

自定义正则表达式= $〜#№\; <>%/

来自分类Dev

grok 的自定义正则表达式

来自分类Dev

我的自定义 URL 的正则表达式

来自分类Dev

自定义 GROUP BY 语句的正则表达式

来自分类Dev

自定义 URL 的 Javascript 正则表达式?

来自分类Dev

在Python中为验证器自定义正则表达式

来自分类Dev

Laravel中的正则表达式规则的自定义验证消息?

来自分类Dev

用于自定义命令格式的正则表达式验证

来自分类Dev

正则表达式自定义表单验证匹配“ [hello.world]”中的单词

来自分类Dev

电话号码的自定义html5验证正则表达式

来自分类Dev

Laravel中的正则表达式规则的自定义验证消息?

来自分类Dev

正则表达式自定义表单验证,匹配“ [hello.world]”中的单词

来自分类Dev

在所有输入上触发自定义正则表达式验证

来自分类Dev

Swift 4 正则表达式自定义验证

来自分类Dev

如何在Android中使用自定义正则表达式来验证EditText输入?

来自分类Dev

自定义-用于验证自定义电子邮件地址的Javascript正则表达式

来自分类Dev

硒使用正则表达式查找自定义属性

来自分类Dev

使正则表达式与自定义Dreamweaver命令一起使用

来自分类Dev

使用正则表达式提取自定义标签的属性值

来自分类Dev

使用正则表达式将自定义日志文件解析为字典

来自分类Dev

使用javascript正则表达式搜索/替换自定义标记

Related 相关文章

  1. 1

    自定义正则表达式-输入验证

  2. 2

    使用自定义正则表达式来验证linkedIn url

  3. 3

    改进自定义正则表达式

  4. 4

    正则表达式以匹配自定义文本

  5. 5

    正则表达式以匹配自定义文本

  6. 6

    自定义正则表达式模式

  7. 7

    自定义正则表达式

  8. 8

    自定义日期格式的正则表达式

  9. 9

    自定义正则表达式= $〜#№\; <>%/

  10. 10

    grok 的自定义正则表达式

  11. 11

    我的自定义 URL 的正则表达式

  12. 12

    自定义 GROUP BY 语句的正则表达式

  13. 13

    自定义 URL 的 Javascript 正则表达式?

  14. 14

    在Python中为验证器自定义正则表达式

  15. 15

    Laravel中的正则表达式规则的自定义验证消息?

  16. 16

    用于自定义命令格式的正则表达式验证

  17. 17

    正则表达式自定义表单验证匹配“ [hello.world]”中的单词

  18. 18

    电话号码的自定义html5验证正则表达式

  19. 19

    Laravel中的正则表达式规则的自定义验证消息?

  20. 20

    正则表达式自定义表单验证,匹配“ [hello.world]”中的单词

  21. 21

    在所有输入上触发自定义正则表达式验证

  22. 22

    Swift 4 正则表达式自定义验证

  23. 23

    如何在Android中使用自定义正则表达式来验证EditText输入?

  24. 24

    自定义-用于验证自定义电子邮件地址的Javascript正则表达式

  25. 25

    硒使用正则表达式查找自定义属性

  26. 26

    使正则表达式与自定义Dreamweaver命令一起使用

  27. 27

    使用正则表达式提取自定义标签的属性值

  28. 28

    使用正则表达式将自定义日志文件解析为字典

  29. 29

    使用javascript正则表达式搜索/替换自定义标记

热门标签

归档