我試圖設置一個正則表達式來檢查字符串的開始,如果它包含http://
或https://
它應該匹配它。正則表達式來測試字符串是以http://開頭還是https://
我該怎麼做?我想這是不工作的情況如下:
^[(http)(https)]://
我試圖設置一個正則表達式來檢查字符串的開始,如果它包含http://
或https://
它應該匹配它。正則表達式來測試字符串是以http://開頭還是https://
我該怎麼做?我想這是不工作的情況如下:
^[(http)(https)]://
您使用的[]
是不正確 - 請注意,[]
表示字符類因此將僅匹配一個字符。表達式[(http)(https)]
翻譯爲「匹配(
,h
,t
,t
,p
,)
或s
」。 (重複的字符將被忽略。)
試試這個:
^https?://
如果你真的想用交替,使用語法來代替:
^(http|https)://
^https?://
您可能逃脫根據上下文,雖然是正斜槓。
這應該工作
^(http|https)://
不區分大小寫:
var re = new RegExp("^(http|https)://", "i");
var str = "My String";
var match = re.test(str);
^https?:\/\/(.*)
其中(.*)
是https://
如果您正在檢查的字符串剛開始後符合一切,它可能更快的做法是直接比較字符串的前幾個字符與您正在查找的模式。 – templatetypedef
您正在用'[]'創建*字符組*。它將會加上一個**字符,它可以是'(',')','h','t','t','p'或's'。即它會匹配's://'但不匹配'ht://'或'x://'。 –
@templatetypedef:我想我感覺一些不成熟的優化。 – cdhowie