首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将RegEx传递给Javascript中的函数

将RegEx传递给Javascript中的函数
EN

Stack Overflow用户
提问于 2016-06-20 21:53:54
回答 1查看 64关注 0票数 1

我正在尝试调用一个函数,并传递了两个参数。字符串和RegExp作为字符串。这个测试似乎工作得很好,因为它将进入if部分,但在调用parse函数后,我没有得到结果。不确定出了什么问题。有什么建议吗?谢谢!

代码语言:javascript
运行
复制
var regEx_eNode = "S1";
var mystring = 'This is my S1ring!';

function getField(eventstr, regfield) {
  var retval;
  var regExpression = new RegExp(regfield,'g');
  var reg_Exp;
  if (regExpression.test(eventstr)) {
    reg_Exp = regExpression.parse(eventstr);
    alert("reg_Exp[1]");
    retval = reg_Exp[1];
    alert(retval);
  } else {
    retval = "not_available";
  }
  return retval;
}
alert('Result: ' + getField(mystring,regEx_eNode));
EN

Stack Overflow用户

发布于 2016-06-20 22:09:59

JS RegExp没有.parse()方法。您可以使用String#matchRegExp#exec

此外,不要对RegExp#test方法中使用的正则表达式使用/g修饰符,因为这可能会导致意外的结果。

使用

代码语言:javascript
运行
复制
var regEx_eNode = "S1";
var mystring = 'This is my S1ring!';

function getField(eventstr, regfield) {
  var retval;
  var regExpression = new RegExp(regfield); // No `/g`!
  var reg_Exp;
  if (regExpression.test(eventstr)) {
    reg_Exp = eventstr.match(regExpression); // <- String#match()
    if (reg_Exp) {
        retval = reg_Exp[0];                     // Get the whole match
        alert(retval);
    } else {
        alert("No match!");
    }
  } else {
    retval = "not_available";
  }
  return retval;
}
alert('Result: ' + getField(mystring,regEx_eNode));

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37924352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档