2016-10-23 2 views
0

У меня разные результаты, если я использую шаблон RegExp и когда я использую новый шаблон RegExp ... Я ноб с 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_ 

Может кто-нибудь сказать мне разницу между новым оператором и логической RegExp шаблона.

Я знаю, что это очень глупый вопрос, так что простите меня, но я запутался ...

ответ

1

Класс RegExp позволяет работать с регулярными выражениями, которые являются шаблонами, которые можно использовать для выполнения поиск в строках и замена текста в строках. Вы можете создать новый объект RegExp с помощью конструктора нового RegExp() или путем присвоения RegExp буквальным переменной:

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

adobe От

Другими словами, они эквивалентны.

+0

Большое спасибо @NealDavis (upvoted), но почему я получил другой вывод с трассировкой (result4); и след (результат 5); ? Есть ли способ легко понять меня? Я попробую это завтра! Возможно, это будет иметь смысл немедленно. (Я надеюсь, что это так);) – tatactic

+1

Думаю, вам может понадобиться поставить переднюю косую черту перед второй косой чертой во второй. –

Смежные вопросы