簡體   English   中英

在不使用后視的情況下重寫此正則表達式 - 使用 JS 的正則表達式無效

[英]Rewrite this regex without using lookbehind - invalid regex with JS

只有很少的正則表達式經驗,我正在嘗試在 node.js 中實現一些電子郵件屏蔽,一切都在本地運行良好,但是一旦推送到服務器,我就會收到無效的正則表達式錯誤。

可以在此處找到正則表達式代碼示例

https://regexr.com/42uid

var email = 'foo@bar.com'
const regex = /(.)[^@\n](?=[^@\n]*[^@\n]@)|(?:(@.)|(?!^)\G(?=[^@]*$)).(?!$)/g;
const maskedEmail = email.replace(regex, '*');

maskedEmail 應該返回

  f*o@b*r.com

我已將問題縮小為“后視/前瞻”,據我所知,它在 JS 中不可用。 但是我不知道如何最好地重寫它。

您可以在多個組中捕獲它,然后在替換為$1$2等中檢索該數據。

通過使用這個正則表達式: ^(.).*(.@.).*(.\\.[^\\.]+)$
並使用以下替換字符串: $1*$2*$3
它將導致: f*o@b*r.com

鏈接到我的小提琴: https : //regexr.com/42um8

暫無
暫無

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

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