• ベストアンサー

文字列の整形方法

"○○が5以下の場合、☆☆ 1減少<BR>●●が42以上の場合、▲▲3増加" "★★ 5増加<BR>□□ 2減少" "■■が85の場合、◎◎ 1減少" と言うような文字列が大量にあるんですが、 <BR>で区切り、条件判断の文を満たしていない、または条件判断の文でない場合はその区切り全体の文字色を黒 満たしていて、結果が減少の場合は赤、増加の場合は青 に変えたいのですが何か良い方法はありますでしょうか

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

>区切られた文字列を人間的に文面通り解釈して 人間的に解釈する方法は、文字列の内容をご存知の質問者様しかいません。まさか、ほんとうに人間的に解釈しろというわけではないですよね? (この程度ならできると思うけど、結構すごいものになりそう) 適当に推測して見ると… 質問文に示されている範囲に限定してよいとするなら、<BR>で区切った後の対象文が  **(が)**[以上|以下|同じ](の場合、)***[増加|減少] という構文に必ず合致している( *は任意文字、()内は定型文、[]内は選択文 )とかいうのであれば、マッチング(正規表現)でそれぞれを取り出してチェックすればよいのではないでしょうか? これだと、あまりにも定型的な文字列に限定すぎて、仮定しているみたいな気もするけど・・・ それであっても、**部分の内容を一応はチェックしとかないとまずそうだし、想定外の値の場合の処置とかもいるのでは?

futaba7777
質問者

補足

とりあえずはこの程度です ほぼすべて書かれている条件どおりの文になっていて 当てはまらない場合は黒でOKなので しいて言えば無条件で増加、減少があることがあるくらいでしょうか

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.3

<br>での分割はsplit "減少""増加""以上""以下""同じ"が入っているかどうかは indexOfやmatch での判定でできるわね。 あとはベタにif文を羅列すればできるわね。

全文を見る
すると、全ての回答が全文表示されます。
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

先に確認するんだけど これってJavaScriptの質問なの? 結果的に生成したいものはHTMLなのはわかるけど。 最初の文字列も どのようにして提供されているのかわからないわ。 あと > <BR>で区切り、条件判断の文を満たしていない、 > または条件判断の文でない場合はその区切り全体の文字色を黒 > 満たしていて、結果が減少の場合は赤、増加の場合は青 これも何を言っているのかわからない。 日本語としてどう読めばいいのかがさっぱりよ。 もっと綺麗にまとめて御覧なさい。 コーディングって、以下に綺麗に条件を整理できるかが大切なのよ。

futaba7777
質問者

補足

webでの軽快な画面描写をしたいのでjavascriptが良いのと javascript以外の言語をよく知らないからです >最初の文字列も >どのようにして提供されているのかわからないわ。 普通に配列に入っているだけです 1つの配列に入っている文字列を<BR>で区切って判断して 区切られた文字列を人間的に文面通り解釈して それが何かしらの条件をあらわしているもの(以上・以下・同じ)であり、かつ条件を満たしていて、結果が減少である場合、区切られた文字列全体の文字色を赤にして出力 結果が増加である場合、青にして出力 条件を満たしていない場合、もしくは条件文に見えない場合(とりあえずは以上・以下・同じ以外)は黒にして出力 と言うことをしたいのです 一番上の行であれば var data=new Array(); data[0]="○○が5以下の場合、☆☆ 1減少<BR>●●が42以上の場合、▲▲3増加"; if(○○ < 5 && 処理に価する部分の文 == 減少) output+="<font color=red>"; else if(○○ < 5 && 処理に価する部分の文 == 増加) output+="<font color=blue>"; else output+="<font color=black>"; output+=data[0].split("<BR>")[0]+"</font>"; のような処理をやりたくて、条件判断文を動的に作る方法、と言った感じでしょうか ○○や☆☆の部分はそこまで種類がないので、ほかの配列に参照用データとして先に入力しても手間はかからないのですが それをやる必要があるかはわからないです

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで、文字の完全一致ではなく、文字の一部が含まれているかをチェックする方法

    質問させてください。 エクセルのA列の文字の一部に、B列の文字が含まれているかどうか、 をチェックする数式を教えて頂けないでしょうか。 例えば、 A列:「赤 青」、「白 黄」、「緑 黒」 B列:「赤」「青」「黒」 この場合、A列の「赤 青」と「緑 黒」のセルの横に○、 というようにしたいのですが。。 VLOOKやCOUNTIFでは、“文字の一部”というのはチェックできないようで、 かつ、LEFTやRIGHTも使いづらい場合です。 きっと簡単な数式があるのでは、と思いお尋ねしました。 どうぞ宜しくお願い致します。

  • エクセルで任意の文字を抽出してその列の全ての文字を並べる方法

    エクセルの1列に赤 青 青といった感じに3行のセルに文字があり 2.4列目に赤が混じっていて、3列目には白 白 白で赤がない場合に、 赤がある列だけを判別して並べる方法ってありますか? 例えば、いま1・2・3・4列と昇降してますが 赤が3列目にはないので、1・2・4・3と並べるように文字判別して列を並び替えることできますか?

  • ()を含む文字列を検索

    ”()”を含む文字列を完全一致で検索したいのですが、 ()が条件として認識されません。 なにか良い手法はありますでしょうか? ちなみに、IF文で文字列一致を判断しています。

  • 左列の文字の色と同じ文字の色にしたいという条件付け書式は可能でしょうか

    左列の文字の色と同じ文字の色にしたいという条件付け書式は可能でしょうか?例えばA1のセルのフォントの色が黒の場合B1のセルのフォントも黒、A1が赤の場合B1も赤のフォント、というように、左の列のフォントの色同じ色のフォントになるよう条件付けしたいのです。可能でしょうか?どのようにいれたらよいか教えていただけませんでしょうか?

  • Excelで、条件付き書式などで文字に色を付ける方法

    MS Office XPのExcelを使っています。 ある列のある範囲の中で、 最大値=赤、最小値=青、それ以外=黒のまま、 という具合にフォント色を変えようと思い、条件付き書式を 使いました。 <例> 適用範囲が「A1:A10」だとしたら 条件1 =MAX($A$1:$A$10) フォント色=赤 条件2 =MIN($A$1:$A$10) フォント色=青 の様にしてみました。 しかしある条件下では意図しない結果になってしまう事に気付き、 解決策を探しています。 下記の様な動作をさせる方法はあるでしょうか。 ◆入力されている数値が全て同じ値の時に、全部赤文字になる →全部黒文字で良い ◆2つのセルだけに入力されている時、  大きい数値が赤、小さい数値が青、となる →大きい数値が赤になるだけで良い ◆1つのセルだけに入力されている時、赤文字になる →黒で良い 宜しくお願いします。

  • 文字色

    1、数行の文があり、全体は赤色の文字、ところどころ青といった風にする場合どういう風に指定すればいいのですか? 2、文字色の変化の指定を終わらせるにはどうしたらいいのですか?

    • ベストアンサー
    • HTML
  • EXCELの文字列操作について

    EXCEL2003において 下記のように列の不特定の場所に()で覆われた文字列があります。 行列ともに随時変更されます。 ( )内が1文字の時は、たとえばA4の(赤)をひとつ上のA3の名古屋に文字を結合し、名古屋(赤)としたいです。B列ならB3の(青)を茨城に結合し、茨城(青)といった感じにです。 また、C4のように( )内が2文字以上の時は、削除したいです。      A列     B列     C列 1    東京      千葉    北海道 2    大阪     茨城    長野 3    名古屋    (青)    鹿児島 4     (赤)     三重    (不適当) よろしくお願いします。

  • Excelのセル内の文字列の文字色変更について

    申し訳ございません、どなたか教えていただけないでしょうか。 エクセルのセル内の文字列を、ある特定の文字列の時に文字色を変えたい。 例えば、赤、青、黄、桃、緑という文字列をセルの中に入れた時、 その文字の色がそれぞれ、 「赤」の時:赤色の文字色 「青」の時:青色の文字色 「黄」の時:黄色の文字色 「桃」の時:桃色の文字色 「緑」の時:緑色の文字色 というように自動的に設定をしたいのです。 条件付き書式では、3種類までならできますが、4種類以上だとダメですよね。 できればマクロではなく、セルの書式設定「ユーザー定義」で設定したいのですが、 公式はございますでしょうか。 数値によって色を変更する方法は、いろいろなサイトで確認しましたが、 文字列で色を変えるという方法がなかったもので質問をいたしました。 よろしくお願いいたします。

  • 文字列分割方法

    フォームから入力されたデーターを文字数により4分割したい場合、 シングルバイトとマルチバイト文字列が混在していると、文字化けが起こってしまいます。 私が考えた方法は <?php $test="あああああいいいいいうううううえええええ"; $length = strlen($test); $length2 = (int)$length/4 $quarter[] = substr($test,0,$length2); $quarter[] = substr($test,$length2,$length2); $quarter[] = substr($test,$length2*2,$length2); $quarter[] = substr($test,$length2*3,$length2); echo $quarter[0]."<BR><BR>"; echo $quarter[1]."<BR><BR>"; echo $quarter[2]."<BR><BR>"; echo $quarter[3]."<BR><BR>"; ?> というものだったんですが、この場合$testに半角文字のaなどが入ると 文字化けしてしまいます。 上手く、マルチバイト・シングルバイト複合文字列を文字数により4分割する方法はないでしょうか? ご教授ください

    • ベストアンサー
    • PHP
  • 文字列の置換について

    MySQLデータベース内の文字列を、別の文字列に書き換えたいんです。 例えば、文字列"http://www.xxx.com" を文字列"http://www.yyy.com"に書き換えます。 SQL文で操作して、一気にデータベースの各テーブルに入った大量の文字列を全部置換させたいんです、そのSQL文どういうふうに書きますか? ご存じの方がいっらしゃいましたら、どうぞお教え下さい。

    • ベストアンサー
    • MySQL