replace()使用正規表達式當參數,可以用來取代文字。
var pattern = new RegEx('/(Taipei)+/g');
var str = 'I live in Taipei.';
var result = str.replace(pattern,'<strong>$1</storng>');
在replace中的$1就代表pattern中的括號,上述的語法會將
I live in Taipei.
變成
I live in <strong>Taipei</strong>.
如果有第二個括號,就是$2,以此類推。
勘誤一下,上面
var pattern = new RegEx('/(Taipei)+/g');
JavaScript的正規化建構式應該是RegExp();
RegExp 最常見的就是用來檢查 email address 的正確性
var pattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var pattern = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
//This now allows Gmail users to add their filtered addresses such as user+filter@gmail.com.
參考資料:http://www.dustindiaz.com/update-your-email-regexp/
請問如果要把多個 -->--> 字串 統一取代為單一個 --> 字串
replace 語法要如何下?
這完全不必用到真正的RE語法吧?
<pre class="c" name="code">
<script>
var str = "abc-->-->def";
alert(str.replace(/-->-->/,"-->"));
</script>
跑跑看。
阿,抱歉,我想您要得是任意個「-->」取代為單一個「-->」,那要這樣:
<pre class="c" name="code">
<script>
var str = "00-->-->-->-->abc-->-->-->def-->-->ghi-->jkl-->-->-->-->-->";
alert(str.replace(/(-->)+/g,"-->"));
</script>