簡體   English   中英

正則表達式進行評估,但忽略某些字符?

[英]Regex to evaluate, but ignore certain characters?

我為正則表達式的笨拙而道歉,但是我不知道如何創建一個忽略某些字符的正則表達式。

var foo = "123",
    bar = "1 (234) a12-34a1",
    result = bar.replace(new RegExp(foo,"ig"),"bcd");

如果正則表達式忽略了[\\ s()-],則結果應為

"b (cd4) abc-d4a1"

有沒有辦法做到這一點?

更新:

問題的背景如下:我必須接受數字字符串,然后在電話號碼中找到它(以多種方式顯示),然后在電話號碼中突出顯示它。

通常,我只會做一個簡單的替換,例如:

var foo = "foo",
    str = "foobar",
    newStr = str.replace(new RegExp(foo,"ig"),"<span class='highlighted'>" + foo + "</span>");

但是格式阻礙了這一點。

例子:

searchStr->預期輸出

123-> 1(23 4)567-8901

345-> 12 3-45 67

56789-> 123(4 5)678-9 012

像這樣?

var foo = "1([\\s()-]*)2([\\s()-]*)3",
    bar = "1 (234) a12-34a1",
    result = bar.replace(new RegExp(foo,"ig"), "b$1c$2d");

result; //b (cd4) abc-d4a1

暫無
暫無

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

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