簡體   English   中英

如何使用正則表達式驗證至少3個單詞的句子且不允許使用URL

[英]how to validate sentence of minimum 3 words and no URL allowed using regular expression

我想創建一個正則表達式來驗證至少3個單詞並且不允許使用URL:

這是我到目前為止至少三個單詞的正則表達式:

"minimumThreeWordsAndNoURL": {
                    "regex": /^/\b\w{1,2}\b/$/,
                    "alertText": "Minimum of 3 words and no URL allowed"
                },

這是URL的正則表達式

 "url": {
                "regex": /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
                "alertText": "* Invalid URL"
            },

如何將其組合在一起,以便在文本區域中需要3個單詞且不允許使用URL?

Chaitanya提出了一個正確的觀點:除非您正在玩Regex Golf或完成一項家庭作業,否則您無需將所有功能都塞進一個regex中。 使用一對正則表達式意味着您的URL匹配器將更易於閱讀,並且您的代碼通常也將更易於理解。

類似於以下內容(帶有不完整的url匹配器)將為您提供大部分幫助:

function validate(str) {
 var phrase = /^(\b\S+\b\s?){3,}$/,
   url = /^((http|https|ftp):\/\/)?\w+(\.\w+)+(\/\w+)*(\?(\w+=\w+)(&\w+=\w+)*)?$/;

 return phrase.test(str) && !url.test(str);
}

暫無
暫無

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

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