无法更改正则表达式字符串

时间:2013-09-13 13:52:20

标签: actionscript-3

我有这个功能:

function tagCheck(tag:String,rez:String):String{
    var regExp:RegExp = /\[user_id\](.*?)\[\/user_id\]/g;
    var matches:Object = regExp.exec(rez);
    return matches[1];
 }

我想用tag更改“user_id”,我怎么能这样做,因为regExp中没有字符串?谢谢!

1 个答案:

答案 0 :(得分:0)

您只需创建一个新的RegExp类即可创建一个正则表达式。

  

public function RegExp(re:String,flags:String)

function tagCheck(tag:String, rez:String) : String {
    var tagRegex:String = tag.replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\' + ('\/' || '') + '-]', 'g'), '\\$&');
    var regExp:RegExp = new RegExp('\\[' + tagRegex + '\\](.*?)\\[\\/' + tagRegex + '\\]', 'g');
    var matches:Object = regExp.exec(rez);
    return matches[1];
}

应该工作(虽然未经测试)。 The first line is to make sure that a tag called my.tag gets changed into my\.tag