簡體   English   中英

使用JavaScript正則表達式匹配全字詞時,請排除電子郵件或URL中匹配的字詞

[英]Exclude the word matched in email or URL when using JavaScript regular expression match full word

我正在嘗試找出JavaScript正則表達式以僅匹配完整單詞,但如果該單詞是電子郵件或URL的一部分,則將其排除。

例如,我們有以下文字是我的代碼

var str ='
    this is my myname
    my email is myname@email.com
    another email is support@myname.com
    and my site is www.myname.com.au';


        function match(text, str) {
            var pattern = "(?=\\s|^|\\b)(?:" + text + ")(?=\\s|$|\\b)";
            var regexp = new RegExp(pattern, "ig");
            while ((match = regexp.exec(str)) != null) {
                var offsetStart = parseInt(match.index);
                var offsetEnd   = parseInt(regexp.lastIndex);
                var selectText  = match.toString();
                console.log("offset start " + offsetStart + " offset end " + offsetEnd + " matched text " + selectText);
            }
        }

    match('myname', str);

我想要的是我要匹配第1行中的文本“ myname”,排除文本“ myname@email.com”,“ support@myname.com”和“ www.myname.com.au”。

謝謝,

這不是一個可靠的解決方案,但可以認為它是一個很好的起點。

 var str =` this is my myname my email is myname@email.com another email is support@myname.com and my site is www.myname.com.au`; const matches = str.match(/myname(?!\\w*[@.])/g); console.log(matches) 

暫無
暫無

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

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