- ベストアンサー
文字間の採取
ABCDE 上記からCDをとるにはどうしたらよいでしょう? ※CDは可変&改行ありです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんなんでいかがでしょうか <script type="text/javascript"> var str = "ABC\r\nDEFG"; var rex = new RegExp("AB([^G]+)G","m"); if (str.match(rex)) { alert(RegExp.$1); } else { alert("マッチしません。"); } </script>
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10359)
回答No.1
CDが可変とのことですが、ABとEは固定と言うこと?それとも、3文字目と4文字目を取り出すと言うこと? また、元の文字列は変数に入っていると思って良いんですよね?
質問者
補足
はい。 例1) ABCDE ->CD 例2) ABC12\r\n 3DE ->C12\r\n3D 例3) AB1\r\n \r\n 23E ->1\r\n\r\n23 AB&Eは固定です。 ABからEの間にAB or Eの文字列は含まれません。(Eはここでは一文字ですが、実際は文字列です。) 文字列は変数$strにあります。戻り値も適当な変数に格納したいです。
お礼
JSは使うことないので入門サイト見てこんなの作ってました。 str = "ABC\r\nDEFG"; document.write("<br>★ str = " + str); str_in = str.indexOf("AB") + 2; document.write("<br>★ str_in = " + str_in); str_out = str.indexOf("G"); document.write("<br>★ str_out = " + str_out); str_core = str.slice(str_in, str_out); document.write("<br>★ str_core = " + str_core); 希望にぴったりのクールなプログラムありがとでした。