NEKOMATAYA

1- レス

何でも質問箱


[27]kiyo[sage]:06/05/13 20:29:24 ID:???
いらっしゃい
>「上書き禁止のため代入式の左辺におくことができません。」
はは、失礼しました。これは私のタイプミスです
if (myItem && myItem.length==1 && myItem.typeName="コンポジション")
正しくは
if (myItem && myItem.length==1 && myItem.typeName=="コンポジション")
ですね…もちろん 代入しちゃいけませんやな
>スルー
されるのは、関数 finditemID()の
var compname = new RegExp(str,"gi");
if (app.project.item(i).name.match(compname)) num = i;}
この部分のためです
mutch()メソッドで 正規表現オブジェクトを使用しているので
〜.match(/720*486/gi)
として解釈されるために 文字列"720*486" とはマッチしません。
"*"が直前文字0回以上の繰り返しにマッチするメタ文字なので、この状態でマッチする文字列は
"72486" "720486" "72000000486" "number720486123" 等になります。
名前マッチでメタ文字が含まれる場合、または含まれる可能性がある場合でメタ文字にマッチさせたければ、
メタ文字自身を"\(バックスラッシュ…円記号に見えるかも)"でエスケープしてやる必要が有ります。
さらに実装にもよりますが、"\"自身もメタ文字なので与え方によっては
"\\\*" こんな風に何度か繰り返す必要の有るケースもよくあります。
コンポ名の一部分でマッチさせるので無ければ、if("文字列"=="比較文字列")で判断したほうが楽ですね。
部分一致が必要ならば、メタ文字を使わないようにするかメタ文字を置換する処理を挟む必要が有ります。
正規表現のデバッグを別レベルで考えると良いかと思うです。
でした


名前

E-mail



0ch BBS 2004-10-30 (+Nekomataya/2005-02-17)