在Javascript中将正则表达式传递给函数
我试图调用一个函数,我传递了两个参数。字符串和作为字符串的RegExp。似乎测试工作正常,因为它将进入if部分,但在调用parse函数后,我没有得到结果。不知道怎么了。有什么建议吗?谢谢在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
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);/JSRegExp
没有.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的方法。