2013-01-18 22 views
0

嗯,我試圖建立一個模式,但未能成功構建的正則表達式會檢查該文本不符合以下條件請幫助建立一個正則表達式

它不應該像什麼開始低於

http:// 
    http://www. 
    http:// 
    http://www. 
    www. 

一般的想法是,用戶不應該被允許選擇他的用戶名,看起來像一個URL。

這裏是我嘗試不同的模式,我嘗試過,但這些失敗以某種方式或其他。

<script type="text/javascript" language="javascript"> 
    function validate(name){ 

     var pattern = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/; 
     var pattern = /^((http|https):\/\/)?[a-z0-9]+([-.]{1}[a-z0-9]+).[a-z]{2,5}(:[0-9]{1,5})?(\/.)?$/; 
     var pattern = ^([^www\.]([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$; 

     var _test = pattern.test(name); 
     alert("_test is " + _test); 

     return false; 
    } 

</scipt> 

任何幫助深表讚賞

祖拜爾

+3

正則表達式中的語言? JavaScript的? 請記住,不是所有的正則表達式的實現都是相同的 –

+1

應該是第三個和第四個示例與https? – shift66

+0

你可以把它分成兩個邏輯組:「http://」和「www.''開頭,其中可能不會出現這兩個邏輯組。 – Aphelion

回答

0

這是你的模式^((http(s)?://(www.)?)|(www.)).*
你可以測試它here

function validate(name){ 
    var pattern = /^((http(s)?:\/\/(www.)?)|(www.)).*/; 
    return pattern.test(name); 
} 

我試過這個作品。

編輯:

是的,我忘了逃走點了。使用/^((http(s)?:\/\/(www\.)?)|(www\.)).*/

+0

shift66它爲此測試數據失敗wwwdff.test.com – Zubair

1

它可以

://|www. 

下面這個例子是簡化在C#:

//Pattern 
string pattern = "://|www."; 
//Execute the regex 
Match match = Regex.Match(testInput, pattern); 
//Test result 
if (match.Success) 
    Console.WriteLine("It's an url!"); 
+0

感謝boulatin,我需要它在javascript – Zubair

+0

asfsdf:/ /將通過您的模式。 – shift66