나는 문자열의 시작을 검사하는 정규 표현식을 설정하기 위해 노력하고있어, 그것이 하나가 포함 된 경우 http://
또는 https://
그것과 일치해야합니다.
어떻게해야합니까? 작동하지 않는 다음을 시도하고 있습니다.
^[(http)(https)]://
답변
사용 []
이 잘못되었습니다. []
이는 문자 클래스 를 나타내므로 한 문자와 만 일치합니다. 표현은 [(http)(https)]
“일치하는 변환 (
, h
하는 t
하는 t
하는을p
하는 )
, 또는를 s
.” 중복 문자는 무시됩니다.
이 시도:
^https?://
실제로 대체를 사용하려면이 구문을 대신 사용하십시오.
^(http|https)://
답변
대소 문자 구분 :
var re = new RegExp("^(http|https)://", "i");
var str = "My String";
var match = re.test(str);
답변
^https?://
상황에 따라 슬래시를 이스케이프해야 할 수도 있습니다.
답변
^https?:\/\/(.*)
어디 (.*)
다른 일치하는 모든 후입니다https://
답변
이 작동합니다
^(http|https)://
답변
이것은 URL 인코딩 문자열에서도 작동합니다.
^(https?)(:\/\/|(\%3A%2F%2F))
답변
이 대소 문자를 구분하지 않는 것은 asp.net에서 작동하지 않았으므로 각 문자를 지정했습니다.
다음은 asp.net RegularExpressionValidator 에서 작동시키기 위해 수행해야 할 작업입니다 .
[Hh][Tt][Tt][Pp][Ss]?://(.*)
노트:
(?i)
그리고 사용/whatever/i
자바 스크립트가 대소 문자를 구분하지 않기 때문에 이 아마 작동하지 않았습니다.- 원래
^
처음에는 있었지만 문제가되지 않았습니다. 그러나(.*)
(표현은 없이는 작동하지(.*)
않았지만 없이는 작동했습니다.^
) - 탈출 할 필요는
//
없었지만 좋은 생각 일 수 있습니다.
필요한 경우 전체 RegularExpressionValidator는 다음과 같습니다.
<asp:RegularExpressionValidator ID="revURLHeaderEdit" runat="server"
ControlToValidate="txtURLHeaderEdit"
ValidationExpression="[Hh][Tt][Tt][Pp][Ss]?://(.*)"
ErrorMessage="URL should begin with http:// or https://" >
</asp:RegularExpressionValidator>