![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
はじめまして。flex3のRegExpValidatorで、
<>"'
を検出するとinvalidとするvalidaterを作成したいのですが
正規表現でつまずいています。どなたか、お知恵をお貸し下さい・・・。
なお、普通に>や<をexpressionに含めると動作しないのでエンティティを使いました。
下にいくつか試したコードを列記します。宜しくお願いします。
expression="[^<>'"]+"
//invalidを検出せず
expression=".[<>'"]"
//真逆の動作、つまりこれらの記号を含まない場合にinvalidとなる
No.1ベストアンサー
- 回答日時:
package
{
import flash.display.Sprite;
import flash.events.Event;
import mx.validators.RegExpValidator;
import mx.events.ValidationResultEvent;
import flash.text.TextField;
/**
* ...
* @author himajin100000
*/
public class Main extends Sprite
{
private var textfield:flash.text.TextField;
public function Main():void
{
textfield = new flash.text.TextField();
textfield.width = 5000;
this.addChild(textfield);
var expression:String = "あ<い";
var validator:mx.validators.RegExpValidator;
validator = new mx.validators.RegExpValidator();
validator.expression = "^[^<>\"']*$";
validator.addEventListener("valid", this.validated);
validator.addEventListener("invalid", this.invalidated);
validator.validate(expression);
//質問文でやりたがっていると思われること。ここから。(個人的に非推奨)
//http://www.revulo.com/blog/20080415.htmlを参考にしました。
expression = "あ<"
validator.expression = "^(?:(?!(>|<|&|"|')).)*$";
validator.validate(expression);
//ただし…
expression = "あ<"
validator.validate(expression);
expression = "あ<"
validator.validate(expression);
//の二つはvalidにしてある。(面倒くさいだけ)
//=====================================
//ここまでは伏線。ここから本題。
//=====================================
// たぶんHTMLやXMLにかかわるコードだと思うんだけど,
// validateとescapeは明確に異なり
// http://d.hatena.ne.jp/gallu/20081112/p1
// validateは先に,escapeは後に行うべき。
// > なお、普通に>や<をexpressionに含めると動作しないのでエンティティを使いました。
// というようなものが求められてしまうのは,「設計自体がおかしい」からであって,
// その部分を設計したコーダーを罵ってでも,その部分の変更させるべきである。
// その上で,俺はXMLを使う。
// http://livedocs.adobe.com/flex/3/langref/XML.html
//=============================
//おまけ(個人的に非推奨。escapeされた状態をプログラムから扱わなくて良い手を考えるべき。
//それとは別に<!-- -->とか注釈宣言があったりするかもしれないし…)
//===============================
try {
var s1:XML = XML("<hoge>" + "<あ<" + "</hoge>");
validator.expression = "^[^<>\"']*$";
validator.validate(s1.toString());
}catch (e:Error) {
textfield.appendText("bug ");
}
//==============================
//気づいたこと
//================================
//何故かcatchされない!?(実体参照にはセミコロンが必要なはず。)
try{
var s2:XML = XML("<hoge>" + ">" + "</hoge>");
}catch (e:Error) {
textfield.appendText("bug ");
}
}
public function validated(e:mx.events.ValidationResultEvent ):void {
textfield.appendText("valid ");
}
public function invalidated(e:mx.events.ValidationResultEvent ):void{
textfield.appendText("invalid ");
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [再掲]指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードについて 1 2023/05/10 15:09
- Visual Basic(VBA) VBA初心者です。 2 2022/10/10 11:52
- Windows 10 UEFIのPCにWindows7をインストールしてVirtualPC2007を使用する。 5 2022/12/10 11:01
- CAD・DTP Auto CAD LT → Auto CAD 1 2022/04/20 12:29
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- 英語 提示表現の構造について 2 2022/12/01 10:40
- Excel(エクセル) VBA : スクレイピングできない 4 2023/05/12 22:26
- Visual Basic(VBA) 【至急】 当方初心者です。 マクロについて知恵をお貸しください。 ★したい動作 ①リストE列2行目か 4 2022/09/29 18:56
- Excel(エクセル) エクセルの複数条件作成方法について 2 2023/01/23 21:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
laptop go2からの買い替え、lap...
-
スマホでサイトの画像を長押し→...
-
ボカロ動画はFlash?HTML5?
-
ActionScript スクロールメニュー
-
AS3 mc0~5をまとめて処理する
-
FLASHでゲームを作っていた人は...
-
この曲はなんでしょう?
-
スクリップト
-
私のコンピューター上のファイ...
-
arduino プログラムについて
-
chrome flash
-
FLASHの再生はできないのでしょ...
-
フラッシュゲームアーカイブ2
-
ウェブサイトで Flash が事実上...
-
Flashコンテンツを使ったWebサイト
-
Flash Playerのサポートが終了
-
Form内のselectを連動させるに...
-
Flashをブロックしないで
-
ダウンロードしたデジブックはa...
-
ad or script について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マウスの基準点について
-
一定時間ごとにカウント
-
クイズ作成に関して xml形式の...
-
XML内のタグの内容を、変数に出...
-
経過日数のカウントアップ
-
サムネイルの写真にリンクをつ...
-
flash.AS3で音楽再生について
-
テキストフィールドかの色情報...
-
ActionScript3.0でスクロールバー
-
Objectの1番目の値がundefinedに
-
varとは
-
スライドショーのサムネイルに...
-
csv読込
-
YouTubeの自作検索フォームで文...
-
FlashLite4.0について
-
データバインディングで代入を...
-
ActionScript3.0のfor文の処理...
-
for文でまとめる
-
ActionScript2.0の変数をjs置き...
-
AS3.0 タグ内の文字列を置換
おすすめ情報