-6ren">
gpt4 book ai didi

javascript - 正则表达式合并电子邮件和号码,但不合并链接

转载 作者:行者123 更新时间:2023-12-03 02:40:37 25 4
gpt4 key购买 nike

我想检查文本是否包含有意义的信息(例如电子邮件地址和号码,因为号码可以是电话号码或客户 ID 等)。

我有一个检测电子邮件的工作模式:

/(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})/img

检测 url 的工作模式:

/(www|http:|https:)+[^\s]+[\w]/img

这是我当前的数字模式:

/(| +|\+)(\d+){3,20}/img

但我只想在某些情况下检测数字。当它们在 url 中使用或在用户名的 @mention 中使用时,它们不应匹配。

这是我测试模式的文本:

@HAMAPA @Waage1965

www.telekomhilft.telekom.de/t5/Fragen-zur-Community/Community-Update-01-2018/m-p/3055244#M28054 der Ort der Schaltfläche ist fehlerhaft (gehört in das Register) bzw. das Register ist fehlerhaft, weil diese Schaltfläche fehlt, das ist nicht beabsichtigt, so wie es aussieht.test3@telekom.de Denn215685553555 bezüglich PN-Register gibt es noch ein weiteres Problem, das ich aber in einem anderen Beitrag gemeldet hatte. Und nur weil die "Neue Nachrichten"-Schaltfläche am falschen Ort ist, ist die dort überhaupt +490154555356 vorhanden, der Fehler des falschen Ortes gleicht somit derzeit ein Drittel eines anderen Fehlers aus. 0175 27557996

0175 12345678 001-541-754-3010 +490154555356 04435/1111 12334546546565

test2@gmx.net

test1@t-online.de Bitte folge dem 04435/1111 Link zu meiner Meldung, dort ist der Fehler beschrieben (inklusive zwei Bildern im Spoiler wie es gerade fälschlicherweise ist und wie es eigentlich sein sollte an der Stelle mit dem Register). Kannst ja mal selbst versuchen eine vorhandene PN zu öffnen (z. B. aus deinen versendenen PNs) und dann von dort auf eine PN der anderen Liste zu wechseln (z. B. auf eingegangene PNs). http://telekomhilft.telekom.de/t5/Fragen-zur-Community/Community-Update-01-2018/m-p/3055244#M28054 der Ort der Schaltfläche ist fehlerhaft (gehört in das Register) bzw. das Register ist fehlerhaft, weil diese Schaltfläche fehlt, das ist nicht beabsichtigt, so wie es aussieht.siegrun@telekom.de Denn bezüglich PN-Register gibt es noch ein weiteres Problem, das ich aber in einem anderen Beitrag gemeldet hatte. Und nur weil die "Neue Nachrichten"-Schaltfläche am falschen Ort ist, ist die dort überhaupt vorhanden, der Fehler des falschen Ortes gleicht somit derzeit ein Drittel eines anderen Fehlers aus. https://telekomhilft.telekom.de/t5/Fragen-zur-Community/Community-Update-01-2018/m-p/3055244#M28054

在该示例中:我不希望网址中的数字匹配,也不希望用户名 Waage1965 的 @mention 中的数字匹配。

是否可以将多种模式组合成一种模式?我想要实现的是,如果用户的文本包含电子邮件地址或可能包含电话号码或客户 ID,则用户会收到警告。但如果数字只是网址中的数字,则不应出现警告。

最佳答案

这是一个非常讨厌的正则表达式,但它有效

/(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})|\+?[\d-]{9,18}/img

我几乎在表达式之间添加了 OR (|) 运算符,并修改了电话的正则表达式:\+?[\d-]{9,18} 。您没有定义电话号码,因此您只需调整大括号中的数字即可。

完整的测试是 here .

关于javascript - 正则表达式合并电子邮件和号码,但不合并链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48340612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com