JavaScript 正規表現 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(正規表現検索の検索条件指定 RegExp.multiline(改行コード無視) , RegExp.$*)
(正規表現検索の検索条件指定 RegExp.multiline(改行コード無視) , RegExp.$*)
 
449行: 449行:
  
 
[[Media:JavaScript RegExp 09 multiline.html|サンプル実行結果]]
 
[[Media:JavaScript RegExp 09 multiline.html|サンプル実行結果]]
 +
 +
 +
で、いろいろやってみたんですけど、RegExp.inputによる検索対象文字列設定とRegExpオブジェクト変数を使ってのxx.exec()の引数無しによるRegExp.inputを検索する方法ではmultilineのオプションが動作しないみたいで、検索一致すらしません。RegExp.inputの文字列中では改行による行頭という概念が存在していないのかもしれません。謎です。謎。謎?んなわけないっす。自分がわかっていないだけです。わかっている人はいるのかもしれません。わたくしめにはこれ以上は調べられませんので、真相究明にはかなり時間がかかると思います。一方通行な記事ですので、誰からも助言を得ることさえありません。おそらく…。この先、わたくしめにそのことを教えてくれる、そんな親切な人はあらわれないでしょう。
 +
 +
 +
更に実験したサンプルは以下になります。
 +
 +
 +
<syntaxhighlight lang="javascript" line start="1">
 +
<HTML>
 +
<HEAD>
 +
<TITLE>JavaScript RegExp multiline</TITLE>
 +
</HEAD>
 +
<BODY>
 +
JavaScript RegExp multiline<br />
 +
<SCRIPT Language="JavaScript">
 +
<!--
 +
regexData1 = new RegExp("^Expression","m"); //正規表現文字列 /Regular Expression2/gと同じ
 +
regexData2 = /^Expression/m; //正規表現文字列 /Regular Expression/gと同じ
 +
 +
document.write("■RegExp multiline<br />");
 +
 +
RegExp.input = "Regular\n\nExpression2\n\n";
 +
var ss = "Regular\n\nExpression2\n\n";
 +
 +
alert(RegExp.$_);
 +
alert(ss);
 +
 +
RegExp.multiline = true;
 +
document.write("正規表現文字列検索 RegExp.multiline(true) = ", RegExp.multiline,",", regexData1.exec(), "<br />");
 +
 +
RegExp.multiline = false;
 +
document.write("正規表現文字列検索 RegExp.multiline(false) = ", regexData1.exec(), "<br />");
 +
document.write("正規表現文字列検索 RegExp.multiline(true) = ", ss.replace(regexData2, "expression"), "<br />");
 +
document.write("正規表現文字列検索 RegExp.multiline(true) = ", regexData2.exec(ss), "<br />");
 +
 +
alert(ss.replace(regexData2, "expression"));
 +
-->
 +
</SCRIPT>
 +
</BODY>
 +
</HTML>
 +
</syntaxhighlight>
 +
 +
[[Media:JavaScript RegExp 09 multiline2nd.html|サンプル実行結果]]
  
 
== '''正規表現検索開始位置の設定 .lastIndex''' ==
 
== '''正規表現検索開始位置の設定 .lastIndex''' ==

2016年8月18日 (木) 00:00時点における最新版



個人用ツール
名前空間

変種
操作
案内
ツールボックス