RegExp如何处理RegExp当你调用construcor?

时间:2016-10-23 13:05:41

标签: regex actionscript-3

如果我使用RegExp模式并使用新的RegExp模式,我会得到不同的结果...... 我是RegExp的菜鸟。 所以

import flash.display.SimpleButton;
import flash.display.Sprite;
import flash.display.Graphics;
import flash.text.TextField;
import flash.ui.ContextMenu;

    var myString1:String = "Sharsks in the sea";
    var pattern1:RegExp = new RegExp("^\s*|\s*$","gim");
    var pattern2:RegExp = new RegExp("\s*|\s*$","gim");
    var pTest:RegExp = /\s*|\s*$/gim;
    var result1:String = myString1.replace(/^\s*|\s*$/gim,"_");
    var result2:String = myString1.replace(pattern1,"_");
    var result3:String = myString1.replace(/\s*|\s*$/gim,"_");
    var result4:String = myString1.replace(pattern2,"_");
    var result5:String = myString1.replace(pTest,"_");

    trace(result1);
    trace(result2);
    trace(result3);
    trace(result4);
    trace(result5);

    outputs : 
    _Sharsks in the sea_
    _harsks in the sea_
    _S_h_a_r_s_k_s__i_n__t_h_e__s_e_a_
    __h_a_r__k__ _i_n_ _t_h_e_ __e_a_
    _S_h_a_r_s_k_s__i_n__t_h_e__s_e_a_

任何人都可以告诉我new运算符和逻辑RegExp模式之间的区别。

我知道这是一个非常愚蠢的问题,请原谅我,但我很困惑......

1 个答案:

答案 0 :(得分:1)

  

RegExp类允许您使用正则表达式,这些表达式可用于在字符串中执行搜索并替换字符串中的文本。   您可以使用新的RegExp()构造函数或将RegExp文字指定给变量来创建新的RegExp对象:

var pattern1:RegExp = new RegExp("test-\\d", "i");
var pattern2:RegExp = /test-\d/i;

来自adobe

换句话说,它们是等价的。