如果我使用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模式之间的区别。
我知道这是一个非常愚蠢的问题,请原谅我,但我很困惑......
答案 0 :(得分:1)
RegExp类允许您使用正则表达式,这些表达式可用于在字符串中执行搜索并替换字符串中的文本。 您可以使用新的RegExp()构造函数或将RegExp文字指定给变量来创建新的RegExp对象:
var pattern1:RegExp = new RegExp("test-\\d", "i");
var pattern2:RegExp = /test-\d/i;
来自adobe
换句话说,它们是等价的。