在Javascript中将正则表达式传递给函数

在Javascript中将正则表达式传递给函数,javascript,regex,Javascript,Regex,我试图调用一个函数,我传递了两个参数。字符串和作为字符串的RegExp。似乎测试工作正常,因为它将进入if部分,但在调用parse函数后,我没有得到结果。不知道怎么了。有什么建议吗?谢谢 var regEx_eNode = "S1"; var mystring = 'This is my S1ring!'; function getField(eventstr, regfield) { var retval; var regExpression = new RegExp(regfiel

我试图调用一个函数,我传递了两个参数。字符串和作为字符串的RegExp。似乎测试工作正常,因为它将进入if部分,但在调用parse函数后,我没有得到结果。不知道怎么了。有什么建议吗?谢谢

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));

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

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

使用

var regEx_eNode=“S1”;
var mystring='这是我的S1ring!';
函数getField(eventstr,regfield){
var-retval;
var regExpression=newregexp(regfield);//否`/g`!
var reg_Exp;
if(regExpression.test(eventstr)){

reg_Exp=eventstr.match(regExpression);/JS
RegExp
没有
.parse()
方法。您可以使用
String#match
RegExp#exec

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

使用

var regEx_eNode=“S1”;
var mystring='这是我的S1ring!';
函数getField(eventstr,regfield){
var-retval;
var regExpression=newregexp(regfield);//否`/g`!
var reg_Exp;
if(regExpression.test(eventstr)){

reg_Exp=eventstr.match(regExpression);//删除
/g
,使用
var regExpression=new RegExp(regfield);
:如果regfield来自用户,那是个坏主意。谢谢Wiktor,还是一样。不要得到任何值。regExpression.parse
是什么意思?你期望什么?检查
。匹配
。在Javascript中parse不是RegExp的方法。删除
/g
,使用
var regExpression=new RegExp(regfield);
:如果regfield来自用户,这是个坏主意。谢谢Wiktor,仍然是一样的。不要得到任何值。regExpression.parse
是什么意思?你期望什么?检查
。匹配
。在Javascript中,parse不是RegExp的方法。