簡體   English   中英

Javascript String.replace 與動態正則表達式?

[英]Javascript String.replace with dynamic regular expressions?

我有以下代碼,它有效,但我需要在運行時將一些不同的東西注入正則表達式對象 ( regex2 )。 但是, text.replace 似乎不喜歡正則表達式的字符串對象,那么我怎樣才能做到這一點呢?

var regex2 = /\|\d+:\d+/;
document.write("result = " + text.replace(regex2, '') + "<br>");

您可以使用RegExp構造函數從字符串創建正則表達式對象:

var regExp = new RegExp(myString);  // regex pattern string

text.replace(regExp, '');

除了 CMS: RegExp構造函數還有第二個可選參數標志
(15.10.4 正則表達式構造函數)

var text = "This is a Test.";

var myRegExp = new RegExp('teST','i');

text.replace(myRegExp,'Example');
// -> "This is a Example."

作為您可以設置的標志

  • g -> 全局搜索(所有出現)
  • 我 -> 不區分大小寫
  • m -> 多行
var value = "2012-09-10";
value = value.replace(/([0-9]{4})[\/-]([0-9]{2})[\/-]([0-9]{2})/,"$3/$2/$1");
alert(value);

這將顯示

10/09/2012

你可以使用 eval 來,

new RegExp( eval("/"+str+"/i") );

再見...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM