Hướng dẫn how do you check if a value is a url javascript? - làm cách nào để kiểm tra xem giá trị có phải là url javascript không?
Nếu bạn muốn kiểm tra xem một chuỗi có hợp lệ URL HTTP hay không, bạn có thể sử dụng Trình xây dựng 9 (nó sẽ ném vào chuỗi dị dạng):is valid HTTP URL, you can use 9
constructor (it will throw on malformed string): Show
Lưu ý: Per RFC 3886, URL phải bắt đầu bằng sơ đồ (không giới hạn ở HTTP/HTTPS), e. G .: Per RFC 3886, URL must begin with a scheme (not limited to http/https), e. g.:
Đã trả lời ngày 18 tháng 4 năm 2017 lúc 8:22Apr 18, 2017 at 8:22
PavlopavloPavlo 41.6K13 Huy hiệu vàng75 Huy hiệu bạc109 Huy hiệu đồng13 gold badges75 silver badges109 bronze badges 27 Một câu hỏi liên quan với câu trả lời Hoặc RegEXP này từ Devshed:
Sᴀᴍ onᴇᴌᴀ 8.0628 Huy hiệu vàng32 Huy hiệu bạc58 Huy hiệu Đồng8 gold badges32 silver badges58 bronze badges Đã trả lời ngày 19 tháng 4 năm 2011 lúc 13:29Apr 19, 2011 at 13:29
Tom Gullentom GullenTom Gullen 60.8k82 Huy hiệu vàng279 Huy hiệu bạc450 Huy hiệu Đồng82 gold badges279 silver badges450 bronze badges 25
Cardoso Diogo 20.9K26 Huy hiệu vàng97 Huy hiệu bạc138 Huy hiệu đồng26 gold badges97 silver badges138 bronze badges Đã trả lời ngày 29 tháng 1 năm 2013 lúc 11:50Jan 29, 2013 at 11:50
ZemljoradnikzemljoradnikZemljoradnik 2.6622 Huy hiệu vàng17 Huy hiệu bạc24 Huy hiệu đồng2 gold badges17 silver badges24 bronze badges 17
Thay vì sử dụng một biểu thức thông thường, tôi khuyên bạn nên sử dụng một phần tử neo. Khi bạn đặt thuộc tính 5 của 6, nhiều thuộc tính khác được đặt.
nguồn Tuy nhiên, nếu giá trị 5 bị ràng buộc không phải là URL hợp lệ, thì giá trị của các thuộc tính phụ đó sẽ là chuỗi trống.Chỉnh sửa: Như đã chỉ ra trong các bình luận: Nếu một URL không hợp lệ được sử dụng, các thuộc tính của URL hiện tại có thể được thay thế. as pointed out in the comments: if an invalid url is used, the properties of the current URL may be substituted. Vì vậy, miễn là bạn không chuyển trong URL của trang hiện tại, bạn có thể làm một cái gì đó như:
Đã trả lời ngày 9 tháng 1 năm 2016 lúc 15:00Jan 9, 2016 at 15:00
LukelukeLuke 5.4474 Huy hiệu vàng35 Huy hiệu bạc63 Huy hiệu Đồng4 gold badges35 silver badges63 bronze badges 12 Tôi đang sử dụng chức năng dưới đây để xác thực URL có hoặc không có 8:
Đã trả lời ngày 16 tháng 4 năm 2018 lúc 4:04Apr 16, 2018 at 4:04
Vikasdeep Singhvikasdeep SinghVikasdeep Singh Huy hiệu vàng 20.2k1177 Huy hiệu bạc100 Huy hiệu đồng11 gold badges77 silver badges100 bronze badges 15 Để xác thực URL bằng JavaScript được hiển thị bên dưới
Cobrexus 4.0793 Huy hiệu vàng19 Huy hiệu bạc41 Huy hiệu đồng3 gold badges19 silver badges41 bronze badges Đã trả lời ngày 14 tháng 5 năm 2015 lúc 4:11May 14, 2015 at 4:11
2 Dựa vào thư viện: https://www.npmjs.com/package/valid-url
Pavlo 41.6K13 Huy hiệu vàng75 Huy hiệu bạc109 Huy hiệu đồng13 gold badges75 silver badges109 bronze badges Một câu hỏi liên quan với câu trả lờiOct 20, 2016 at 2:38
1
Hoặc RegEXP này từ Devshed:
20.9K26 Huy hiệu vàng97 Huy hiệu bạc138 Huy hiệu đồng Đã trả lời ngày 29 tháng 1 năm 2013 lúc 11:506 silver badges23 bronze badges ZemljoradnikzemljoradnikAug 8, 2017 at 11:55
2.6622 Huy hiệu vàng17 Huy hiệu bạc24 Huy hiệu đồngTim Truston Thay vì sử dụng một biểu thức thông thường, tôi khuyên bạn nên sử dụng một phần tử neo.6 gold badges46 silver badges59 bronze badges 8 Khi bạn đặt thuộc tính 5 của 6, nhiều thuộc tính khác được đặt.
nguồnMar 14, 2018 at 17:05
Tuy nhiên, nếu giá trị 5 bị ràng buộc không phải là URL hợp lệ, thì giá trị của các thuộc tính phụ đó sẽ là chuỗi trống.Aral RocaChỉnh sửa: Như đã chỉ ra trong các bình luận: Nếu một URL không hợp lệ được sử dụng, các thuộc tính của URL hiện tại có thể được thay thế.8 gold badges46 silver badges78 bronze badges 2 Vì vậy, miễn là bạn không chuyển trong URL của trang hiện tại, bạn có thể làm một cái gì đó như: ES6 0Đã trả lời ngày 9 tháng 1 năm 2016 lúc 15:00 1Lukeluke 5.4474 Huy hiệu vàng35 Huy hiệu bạc63 Huy hiệu Đồng 2Tôi đang sử dụng chức năng dưới đây để xác thực URL có hoặc không có 8: 3Đã trả lời ngày 16 tháng 4 năm 2018 lúc 4:04Jun 22, 2019 at 12:48
Vikasdeep Singhvikasdeep SinghIlyich Huy hiệu vàng 20.2k1177 Huy hiệu bạc100 Huy hiệu đồng1 gold badge33 silver badges27 bronze badges 4 Để xác thực URL bằng JavaScript được hiển thị bên dưới 4
CobrexusApr 18, 2018 at 22:24
4.0793 Huy hiệu vàng19 Huy hiệu bạc41 Huy hiệu đồngRyan Breece Đã trả lời ngày 14 tháng 5 năm 2015 lúc 4:1110 silver badges16 bronze badges 3 Dựa vào thư viện: https://www.npmjs.com/package/valid-url Pavlo 5Đã trả lời ngày 20 tháng 10 năm 2016 lúc 2:38 Có một kho lưu trữ khác mà tôi đã thấy thậm chí có thể tốt hơn đối với ISURL tại Dperini/Regex-Weburl.js, nhưng nó rất phức tạp. Nó có một danh sách kiểm tra lớn hơn các URL hợp lệ và không hợp lệ. Cái đơn giản ở trên vẫn vượt qua tất cả các mặt tích cực và chỉ không chặn được một vài tiêu cực kỳ lạ như 7 cũng như các IP đặc biệt.may even be better for isURL at dperini/regex-weburl.js, but it is highly complex. It has a bigger test list of valid and invalid URLs. The simple one above still passes all the positives and only fails to block a few odd negatives like 7 as well as the special ips.Dù bạn chọn gì, hãy chạy nó thông qua chức năng này mà tôi đã điều chỉnh từ các bài kiểm tra trên DPERINI/REGEX-WEBUBERL.JS, trong khi sử dụng các công cụ phát triển của trình duyệt của bạn. 6Và sau đó kiểm tra chuỗi đó của 'A. Xem so sánh này về Isurl Regex của Mathias Bynens để biết thêm thông tin trước khi bạn đăng một Regex có vẻ tuyệt vời. Đã trả lời ngày 9 tháng 3 năm 2018 lúc 1:52Mar 9, 2018 at 1:52
Aamarksaamarksaamarks 84210 Huy hiệu bạc16 Huy hiệu đồng10 silver badges16 bronze badges 3 Hàm này không cho phép localhost và chỉ cho phép các URL cho các trang web (tức là chỉ cho phép giao thức HTTP hoặc HTTPS). Nó cũng chỉ cho phép các ký tự an toàn như được định nghĩa ở đây: https://www.urlencoder.io/learn/ 7Đã trả lời ngày 7 tháng 8 năm 2020 lúc 21:04Aug 7, 2020 at 21:04
CRASHALOTCRASHALOTCrashalot 32.9K59 Huy hiệu vàng264 Huy hiệu bạc423 Huy hiệu đồng59 gold badges264 silver badges423 bronze badges 1 . Mặc dù việc sử dụng URL tương đối giao thức không được khuyến khích (URL liên quan đến giao thức), đôi khi chúng được sử dụng. Để xác thực URL như vậy với biểu thức chính quy, phần giao thức có thể là tùy chọn, ví dụ: 8Như những người khác đã lưu ý, biểu thức chính quy dường như không phải là cách tiếp cận phù hợp nhất để xác nhận các URL. Đã trả lời ngày 11 tháng 7 năm 2017 lúc 21:26Jul 11, 2017 at 21:26
Ko Lako lako la 4014 Huy hiệu bạc9 Huy hiệu Đồng4 silver badges9 bronze badges 3 Một chức năng mà tôi đã sử dụng để xác thực "chuỗi" URL là: 9Hàm này sẽ trả về Boolean cho dù chuỗi là URL. Examples: 0Đã trả lời ngày 31 tháng 1 năm 2018 lúc 3:16Jan 31, 2018 at 3:16
ChrischrisChris 3.1614 Huy hiệu vàng19 Huy hiệu bạc34 Huy hiệu đồng4 gold badges19 silver badges34 bronze badges Tôi không thể nhận xét về bài đăng đó là #5717133 gần nhất, nhưng dưới đây là cách tôi tìm ra cách để có được @tom-gullen regex hoạt động. 1
Đã trả lời ngày 19 tháng 3 năm 2014 lúc 22:34Mar 19, 2014 at 22:34
iamnewtoniamnewtoniamnewton 3193 Huy hiệu bạc9 Huy hiệu Đồng3 silver badges9 bronze badges 2 Đã có rất nhiều câu trả lời, nhưng đây là một đóng góp khác: được lấy trực tiếp từ kiểm tra tính hợp lệ của polyfill 9, hãy sử dụng phần tử 9 với 0 để tận dụng kiểm tra tính hợp lệ tích hợp của trình duyệt: 2Nguồn Đã trả lời ngày 11 tháng 6 năm 2020 lúc 8:45Jun 11, 2020 at 8:45
Ngón tay Bruno ngón tayBruno Finger 1.7592 huy hiệu vàng23 Huy hiệu bạc41 Huy hiệu đồng2 gold badges23 silver badges41 bronze badges Điều này khá khó thực hiện với Regex thuần túy vì các URL có nhiều 'sự bất tiện'.
Tuy nhiên, đây là một chức năng xử lý khá nhiều thứ ngoại trừ:
3Đã trả lời ngày 10 tháng 2 năm 2019 lúc 19:51Feb 10, 2019 at 19:51
CanercanerCaner 55.5K35 Huy hiệu vàng170 Huy hiệu bạc176 Huy hiệu đồng35 gold badges170 silver badges176 bronze badges Mathias Bynens đã biên soạn một danh sách các url nổi tiếng với các URL thử nghiệm. Có rất ít lý do để viết một biểu thức chính quy mới; Chỉ cần chọn một cái hiện có phù hợp với bạn nhất. Nhưng bảng so sánh cho những regexes đó cũng cho thấy rằng không thể thực hiện xác thực URL với một biểu thức chính quy duy nhất. Tất cả các regexes trong danh sách của Bynens tạo ra các dương tính sai và âm tính sai. Tôi khuyên bạn nên sử dụng trình phân tích cú pháp URL hiện có (ví dụ 2 trong JavaScript) và sau đó áp dụng các kiểm tra bạn muốn thực hiện đối với dạng phân tích cú pháp và chuẩn hóa của URL. các thành phần của nó. Sử dụng giao diện JavaScript 9 có lợi ích bổ sung mà nó sẽ chỉ chấp nhận các URL đó thực sự được trình duyệt chấp nhận.Bạn cũng nên nhớ rằng các URL không chính xác về mặt kỹ thuật vẫn có thể hoạt động. Ví dụ 4, 5, 6 đều có một phần tên máy chủ không hợp lệ nhưng mọi trình duyệt tôi biết sẽ cố gắng mở chúng mà không cần khiếu nại và khi bạn chỉ định địa chỉ IP cho những tên không hợp lệ đó trong 7 URL đó thậm chí sẽ hoạt động nhưng chỉ trên máy tính của bạn.Do đó, câu hỏi là không quá nhiều cho dù URL có hợp lệ hay không, mà là URL nào hoạt động và nên được cho phép trong một bối cảnh cụ thể. Nếu bạn muốn thực hiện xác thực URL, có rất nhiều chi tiết và trường hợp cạnh dễ bỏ qua:
Điều nào trong số những hạn chế và quy tắc áp dụng là một câu hỏi về các yêu cầu và sở thích của dự án. Gần đây tôi đã viết một trình xác nhận URL cho một ứng dụng web phù hợp với các URL do người dùng cung cấp trong các diễn đàn, mạng xã hội hoặc tương tự. Vui lòng sử dụng nó làm cơ sở cho một cơ sở của riêng bạn:
Tôi cũng đã viết một bài đăng trên blog Các chi tiết của xác thực URL với nhiều thông tin chuyên sâu hơn. Đã trả lời ngày 17 tháng 1 năm 2020 lúc 9:51Jan 17, 2020 at 9:51
Guido Flohrguido FlohrGuido Flohr 1.71112 huy hiệu bạc27 Huy hiệu đồng12 silver badges27 bronze badges Điều này làm việc với tôi 4
Đã trả lời ngày 16 tháng 4 năm 2019 lúc 16:02Apr 16, 2019 at 16:02
2 Có một vài thử nghiệm sử dụng hàm tạo URL không phân định xem đầu vào là đối tượng chuỗi hoặc URL. 5Đã trả lời ngày 10 tháng 3 năm 2020 lúc 22:45Mar 10, 2020 at 22:45
greg.arnottgreg.arnottgreg.arnott 1.60217 Huy hiệu bạc16 Huy hiệu đồng17 silver badges16 bronze badges Tôi đã sửa đổi tất cả các bình luận, ghi chú và nhận xét là chủ đề này và đã tạo ra một biểu thức thường xuyên mới: 6Bạn có thể kiểm tra và cải thiện nó ở đây https://regexr.com/668mt. Tôi đã kiểm tra biểu thức này trên các giá trị tiếp theo: 7Đã trả lời ngày 24 tháng 9 năm 2021 lúc 12:42Sep 24, 2021 at 12:42
WoonderwoonderWoonder 2814 Huy hiệu bạc4 Huy hiệu đồng4 silver badges4 bronze badges Nếu bạn có thể thay đổi loại đầu vào, tôi nghĩ rằng giải pháp này sẽ dễ dàng hơn nhiều: Bạn có thể sử dụng đơn giản 0 trong đầu vào của mình và kiểm tra nó bằng 3 trong JSE.g: your.html 8your.js 9Đã trả lời ngày 9 tháng 8 năm 2019 lúc 10:39Aug 9, 2019 at 10:39
Nếu bạn cũng cần hỗ trợ 4 thì hãy sử dụng phiên bản sửa đổi này của Regex [DevShed]. 0Đã trả lời ngày 13 tháng 1 năm 2020 lúc 23:08Jan 13, 2020 at 23:08
Tôi thay đổi hàm để khớp + thực hiện thay đổi ở đây với các dấu gạch chéo và công việc của nó: (http: // và https) cả hai 1Đã trả lời ngày 4 tháng 2 năm 2020 lúc 18:53Feb 4, 2020 at 18:53
Ashish Guptaashish GuptaAshish Gupta 1.08711 Huy hiệu bạc13 Huy hiệu đồng11 silver badges13 bronze badges 1 Tôi nghĩ rằng sử dụng API URL gốc tốt hơn các mẫu regex phức tạp như @pavlo đề xuất. Nó có một số nhược điểm mặc dù chúng ta có thể sửa chữa bằng một số mã bổ sung. Cách tiếp cận này thất bại đối với URL hợp lệ sau đây. 2Chúng ta có thể thêm giao thức bị thiếu trước để tránh điều đó. Nó cũng không phát hiện được sau URL không hợp lệ. 3Vậy tại sao kiểm tra toàn bộ URL? Chúng tôi chỉ có thể kiểm tra miền. Tôi đã mượn regex để xác minh tên miền từ đây. I borrowed the regex to verify domain from here. 4Thuộc tính 5 là chuỗi trống cho 1, vì vậy nó cũng hoạt động cho điều đó và bạn cũng có thể thêm trình xác minh địa chỉ IP. Tôi muốn gắn bó với API bản địa nhiều nhất và hy vọng nó bắt đầu hỗ trợ mọi thứ trong tương lai gần.Đã trả lời ngày 16 tháng 4 năm 2018 lúc 22:11Apr 16, 2018 at 22:11
Munim Munnamunim MunnaMunim Munna Phim thương hiệu vàng 17K66 gold badges26 silver badges56 bronze badges 1 Câu hỏi đặt ra một phương thức xác thực cho một URL như 7, không có giao thức hoặc bất kỳ dấu chấm nào trong tên máy chủ. Vì vậy, đó không phải là vấn đề xác nhận Sintax URL, nhưng kiểm tra xem đó có phải là URL hợp lệ không, bằng cách thực sự gọi nó.Tôi đã thử một số phương thức để biết liệu URL true có tồn tại hay không và có thể gọi được từ bên trong trình duyệt, nhưng không tìm thấy cách nào để kiểm tra với JavaScript tiêu đề phản hồi của cuộc gọi:
Vì vậy, giải pháp tốt nhất tôi có thể nghĩ là có được một số công cụ để thực hiện 3 bằng cách sử dụng JavaScript thử một cái gì đó như 4. Thật không may, tôi đã không tìm thấy bất kỳ và trong Appereance là không thể. Tôi sẽ đánh giá cao bất kỳ ý kiến về điều này.Nhưng, cuối cùng, tôi có một máy chủ đang chạy 5 và khi tôi sử dụng AJAX cho hầu hết các yêu cầu của mình, tôi đã viết một chức năng ở phía máy chủ để thực hiện yêu cầu Curl ở đó và quay lại trình duyệt.Về URL từ duy nhất trên câu hỏi 'Stackoverflow', nó sẽ dẫn tôi đến 6, nơi daniserver.com.ar là tên miền của riêng tôi.Đã trả lời ngày 22 tháng 4 năm 2018 lúc 17:49Apr 22, 2018 at 17:49
1 Đây dường như là một trong những vấn đề khó khăn nhất trong CS;) Đây là một giải pháp không hoàn chỉnh khác hoạt động đủ tốt cho tôi và tốt hơn những giải pháp khác mà tôi đã thấy ở đây. Tôi đang sử dụng đầu vào [type = url] cho điều này để hỗ trợ IE11, nếu không sẽ đơn giản hơn nhiều khi sử dụng Window.url để thực hiện xác thực thay thế: thay vào đó: 5Để chấp nhận các đầu vào không đầy đủ như "www.mydomain.com", nó cũng sẽ làm cho nó hợp lệ giả định giao thức là "http" trong các trường hợp đó và trả về URL hợp lệ nếu địa chỉ hợp lệ. Nó trả về sai khi không hợp lệ. Nó cũng hỗ trợ các tên miền IPv4, nhưng không phải IPv6. Đã trả lời ngày 26 tháng 7 năm 2018 lúc 19:24Jul 26, 2018 at 19:24
Rosenfeldrosenfeldrosenfeld 1.70015 huy hiệu bạc19 Huy hiệu đồng15 silver badges19 bronze badges Trong trường hợp của tôi, yêu cầu duy nhất của tôi là đầu vào của người dùng sẽ không được hiểu là một liên kết tương đối khi được đặt trong HREF của một thẻ A và các câu trả lời ở đây là một chút OTT cho điều đó hoặc cho phép URL không đáp ứng các yêu cầu của tôi, vì vậy điều này là những gì tôi đang đi với: 6Điều tương tự có thể đạt được khá dễ dàng mà không cần Regex. Đã trả lời ngày 25 tháng 3 năm 2019 lúc 15:34Mar 25, 2019 at 15:34
Rdansrdansrdans 2.14921 huy hiệu bạc32 huy hiệu đồng21 silver badges32 bronze badges Đây không phải là cách tiếp cận hiệu quả nhất, nhưng nó có thể đọc được và dễ dàng hình thành cho bất cứ điều gì bạn cần. Và việc thêm regex/phức tạp từ đây dễ dàng hơn. Vì vậy, đây là một cách tiếp cận rất thực dụng 7TEST: 8Đã trả lời ngày 2 tháng 10 năm 2019 lúc 19:21Oct 2, 2019 at 19:21 URL trong JavaScript là gì?URL.Một chuỗi hoặc bất kỳ đối tượng nào khác có trình biến đổi chuỗi - bao gồm, ví dụ, một phần tử hoặc phần tử - đại diện cho một URL tuyệt đối hoặc tương đối.Nếu URL là URL tương đối, cần có cơ sở và sẽ được sử dụng làm URL cơ sở.Nếu URL là một URL tuyệt đối, một cơ sở nhất định sẽ bị bỏ qua.cơ sở tùy chọn.A string or any other object with a stringifier — including, for example, an or element — that represents an absolute or relative URL. If url is a relative URL, base is required, and will be used as the base URL. If url is an absolute URL, a given base will be ignored. base Optional.
Bạn nên kiểm tra những gì khi xác thực URL?Lớp URL để xác nhận URL được thảo luận trong bài trước ... URL phải bắt đầu với HTTP hoặc HTTPS và .. Sau đó, nó phải chứa www.và.. sau đó theo sau là tên miền phụ có chiều dài (2, 256) và .. Phần cuối cùng chứa miền cấp cao nhất như .com,.org vv .. Định dạng URL hợp lệ là gì?Một URL điển hình có thể có biểu mẫu http://www.example.com/index.html, chỉ ra một giao thức (http), tên máy chủ (www.example.com) và tên tệp (chỉ mục. HTML).http://www.example.com/index.html , which indicates a protocol ( http ), a hostname ( www.example.com ), and a file name ( index. html ).
Điều nào sau đây là URL hợp lệ?Câu trả lời là Tùy chọn 1. www.google.com là địa chỉ trang web hợp lệ.www.google.com is a valid website address. |