
Flash Pro CS5
AS3.0
で記述しています。
He <font color ="#00FFFF">gose</font> to library.
という文章が bunsyo という変数に入っています。
外部xmlから取得し、この型はxmlです。
ここで、
He <font color ="#00FFFF">gose</font> to library.
を
He <font color ="#00FFFF">_______</font> to library.
又は
He ________ to library.
のように書き換えたいと思っています。
そしてそれをテキストフィールドに入れます。
空欄を見せて考えさせ、あとで元の文章(それが答え)を表示したいと考えています。
正規表現を使い
var result:String = bunsyo.replace(/ >.+< /, "_____");
trace(result);
と記述しましたが何も変化がありませんでした。。
型がxmlなのでstringにしないと置換してくれようです;
テキストフィールドに入れる際に<font color ="#00FFFF"></font>のタグが使えなくなるので
できればそのまま置換したいのですが…
型がxmlのまま置換するにはどのようにすればいいのでしょうか。
また,もし他にもタグを識別して置換するか文字を置換or抜き出す(今回はgose)方法がありましたら教えていただきたいです。
よろしくおねがいします。
No.1ベストアンサー
- 回答日時:
おそらく正規表現を使えばできると思います。
新規ドキュメントを作成し
フレームに記述(コピペ)するスクリプト例です↓。
--------------------------
//文章を設定
var str1:String = 'He <font color ="#00FFFF">gose</font> to library.';
//置換するパターン
var pattern:RegExp = /<font color ="#00FFFF">.*?<\/font>/g;
//置換後の文章を取得(複数ある場合は最短一致)
var str2:String = str1.replace(pattern, '<font color ="#00FFFF">_______<\/font>');
//置換後の文章を出力窓に出力
trace(str2);
--------------------------
または
--------------------------
//文章を設定
var str1:String = 'He <font color ="#00FFFF">gose</font> to library.';
//置換するパターン(複数ある場合は最短一致)
var pattern:RegExp = /<font color ="#00FFFF">.*?<\/font>/g;
//置換後の文章を取得
var str2:String = str1.replace(pattern, "_______");
//置換後の文章を出力窓に出力
trace(str2);
--------------------------
「制御」→「ムービープレビュー」で出力窓を確認してみてください。
もし,
タグに 「font color ="#00FFFF"」 が入っている入っていないに関わらず他の場合でも,
例えば文章が
「He <font size="4">goes</font> to library.」
の場合でも
「He <u>gose</u> to library.」
の場合でも
同様のことをする場合は次のようになります(???)
(色々な場合でうまく行くかどうかはわかりません...)
--------------------------
//文章を設定
var str1:String = 'I <font size="4">love</font> you. You <u>like</u> me.';
//置換するパターン
var pattern:RegExp = />[^<]*<\//g;
//置換後の文章を取得
var str2:String = str1.replace(pattern, '>_______</');
//置換後の文章を出力窓に出力
trace(str2);
--------------------------
または
--------------------------
//文章を設定
var str1:String = 'I <font size="4">love</font> you. You <u>like</u> me.';
//置換するパターン
var pattern:RegExp = /<[^>]*>.*?<[^>]*>/g;
//置換後の文章を取得
var str2:String = str1.replace(pattern, '_______');
//置換後の文章を出力窓に出力
trace(str2);
--------------------------
この辺↓前後のページが参考になると思います。
「Adobe ActionScript 3.0 繰り返し制御文字」
http://help.adobe.com/ja_JP/ActionScript/3.0_Pro …
私は上記ページからリンクされている PDF ファイルをダウンロードして
7章と10章を熟読した上でなんとか考えて上記スクリプトを書きました。
結構アセアセにややこしいです(特に下のスクリプト2つ)。
この回答への補足
スクリプトまでご丁寧にありがとうございます。
私が書かせていただいたスクリプトの場合も、
変数bunsyoの型を
xml→string
と変換してから
正規表現を使った
var result:String = bunsyo.replace(/ >.+< /, "_____");
trace(result);
で書き換えられました。
しかし、String型ですと、テキストに入れる際にhtmlTextを使っても
つまり
test_txt.htmlText = result;
としても
<font color ="#00FFFF"></font>が色が変わるのではなく
そのまま表示されてしまい困っています。
(xml型のときはちゃんと色が変わっていたのでおそらくそこが原因かと思いました)
質問の仕方が下手ですみません;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スマホでサイトの画像を長押し→...
-
flash (.swf) を編集したい
-
potplayerについて質問です
-
サイト構築の方法を教えてください
-
flash.ocxエラーについて
-
配列の中にもう1度配列を宣言?
-
Action Script 2.0 配列の比較
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
laptop go2からの買い替え、lap...
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
potplayerについて質問です
-
スマホでサイトの画像を長押し→...
-
uwscでExcelに自動記入
-
flash (.swf) を編集したい
-
arduino プログラムについて
-
私のコンピューター上のファイ...
-
バナー広告の事に質問です! 広...
-
キャラクター設定について
-
pcのロードを速めたい!
-
ゲオでカードを作るのは何歳か...
-
FLASHでコンパイルエラーが出て...
-
chrome flash
-
ダウンロードしたデジブックはa...
-
Flash playerを有効にするには
-
パソコンのリカバリーについて
-
アメリカから買ったダウンロー...
-
Flashの今後について
-
swfファイルのfc2ブログへの表...
-
この曲はなんでしょう?
-
スクリップト
おすすめ情報