Làm cách nào để lấy thẻ neo từ chuỗi trong JavaScript?

URL – hoặc Bộ định vị tài nguyên thống nhất – là văn bản được sử dụng để xác định các tài nguyên như trang web, hình ảnh và video trên internet

Chúng tôi thường coi URL là địa chỉ trang web và chúng được sử dụng để truyền tệp, email và các ứng dụng khác

URL bao gồm nhiều phần – giao thức, tên miền, v.v. – cho trình duyệt biết cách thức và vị trí truy xuất tài nguyên

Trong JavaScript, bạn có thể cần sử dụng một URL trong các thẻ neo hoặc các nút để liên kết người dùng với một trang web khác. Chuỗi URL này phải được xác minh để đảm bảo đó là một URL hợp lệ trong những trường hợp như vậy

Hướng dẫn này sẽ hướng dẫn bạn một số cách để kiểm tra xem một chuỗi JavaScript có phải là một URL hợp lệ hay không

Để tìm hiểu cách lấy URL hiện tại trong JavaScript, bạn có thể đọc bài viết này về Cách lấy URL hiện tại trong JavaScript

Cách kiểm tra xem Chuỗi có phải là URL hợp lệ hay không bằng Regex

Biểu thức chính quy [regex] là các mẫu khớp với các tổ hợp ký tự trong chuỗi JavaScript. Trong JavaScript, biểu thức chính quy còn được gọi là đối tượng cung cấp các phương thức khác nhau để thực hiện các thao tác khác nhau

Bạn có thể xây dựng một biểu thức chính quy theo hai cách

  • Sử dụng các biểu thức chính quy
  • Sử dụng hàm tạo biểu thức chính quy

Ghi chú. Việc sử dụng phương thức biểu thức chính quy là phù hợp khi bạn chỉ muốn kiểm tra xem một chuỗi có phải là một URL hợp lệ hay không và không muốn tạo bất kỳ đối tượng bổ sung nào khác

Hãy cùng tìm hiểu cách thức hoạt động của hai phương pháp này

Cách sử dụng biểu thức chính quy

Trong một biểu thức chính quy, mẫu được đặt giữa các dấu gạch chéo, như bạn sẽ thấy bên dưới

Mẫu này bao gồm việc xác nhận các bộ phận cần thiết trong

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
3. Ví dụ: một giao thức,
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
4,
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
5, v.v.

const urlPattern = /[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?/;

Cách sử dụng hàm tạo biểu thức chính quy

Để tạo biểu thức chính quy bằng cách sử dụng phương thức xây dựng, hãy sử dụng hàm tạo

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
6 và chuyển mẫu dưới dạng tham số

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];

Để trình bày cách xác thực nếu một chuỗi là một

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
3, hãy tạo một phương thức sẽ xác thực một JavaScript
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
8 bằng cách sử dụng hàm tạo biểu thức chính quy và trả về
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
9 hoặc
	const isValidUrl = urlString=> {
	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
	  return !!urlPattern.test[urlString];
	}
0 dựa trên mẫu phù hợp

	const isValidUrl = urlString=> {
	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
	  return !!urlPattern.test[urlString];
	}

Cách sử dụng regex để xác thực chuỗi URL

Đoạn mã dưới đây trình bày cách xác thực các chuỗi URL khác nhau bằng phương pháp trên

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
1

Cách kiểm tra xem Chuỗi có phải là URL hợp lệ hay không bằng Trình tạo URL

Bạn có thể sử dụng URLConstructor để kiểm tra xem chuỗi có phải là URL hợp lệ không

URLConstructor [

	const isValidUrl = urlString=> {
	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
	  return !!urlPattern.test[urlString];
	}
1] trả về một đối tượng URL mới được tạo được xác định bởi các tham số URL

Một ngoại lệ JavaScript

	const isValidUrl = urlString=> {
	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
	  return !!urlPattern.test[urlString];
	}
2 được đưa ra nếu URL đã cho không hợp lệ

Ghi chú. Sẽ thích hợp để sử dụng phương pháp này khi bạn muốn xây dựng một đối tượng URL trong chương trình của mình để sử dụng tiếp

Cú pháp Trình tạo URL

Cú pháp sau giải thích cách tạo Đối tượng URL bằng Chuỗi JavaScript

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
4

Ở đâu,

  • 	const isValidUrl = urlString=> {
    	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
    	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
    	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
    	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
    	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
    	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
    	  return !!urlPattern.test[urlString];
    	}
    
    3 là một chuỗi hoặc bất kỳ đối tượng nào có bộ chuỗi đại diện cho một URL tuyệt đối hoặc tương đối. Nếu URL là một URL tuyệt đối, cơ sở sẽ bị bỏ qua. Nếu URL là một URL tương đối, cơ sở là bắt buộc
  • 	const isValidUrl = urlString=> {
    	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
    	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
    	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
    	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
    	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
    	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
    	  return !!urlPattern.test[urlString];
    	}
    
    4 [tùy chọn] là một chuỗi đại diện cho URL cơ sở. Nó phải được thông qua khi URL là tương đối. Mặc định là không xác định khi bỏ qua

Ví dụ về phương thức Trình tạo URL

Để minh họa cách hoạt động của phương thức tạo URL, hãy tạo một hàm lambda trong JavaScript để tạo một URL mới với chuỗi đã truyền

  • Nếu chuỗi là một URL hợp lệ, một đối tượng URL được tạo và trả về
    	const isValidUrl = urlString=> {
    	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
    	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
    	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
    	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
    	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
    	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
    	  return !!urlPattern.test[urlString];
    	}
    
    5
  • Nếu Chuỗi không phải là một URL hợp lệ, một ngoại lệ
    	const isValidUrl = urlString=> {
    	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
    	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
    	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
    	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
    	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
    	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
    	  return !!urlPattern.test[urlString];
    	}
    
    6 sẽ được đưa ra và
    	const isValidUrl = urlString=> {
    	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
    	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
    	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
    	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
    	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
    	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
    	  return !!urlPattern.test[urlString];
    	}
    
    7 được trả về
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
0

Cách sử dụng phương pháp
	const isValidUrl = urlString=> {
	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
	  return !!urlPattern.test[urlString];
	}
8

Hãy gọi phương thức

	const isValidUrl = urlString=> {
	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
	  return !!urlPattern.test[urlString];
	}
8 cho các loại chuỗi khác nhau và xem kết quả

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
3

Trong ba trường hợp đầu tiên, bạn có thể thấy rằng một chuỗi URL không hợp lệ đã được chuyển. Do đó, việc tạo đối tượng URL không thành công với

	const isValidUrl = urlString=> {
	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
	  return !!urlPattern.test[urlString];
	}
2 và
	const isValidUrl = urlString=> {
	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
	  return !!urlPattern.test[urlString];
	}
7 được trả về

Trong hai trường hợp cuối cùng, chuỗi URL hợp lệ được chuyển. Vì vậy, một đối tượng

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
3 được tạo thành công và
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
9 được trả về, xác nhận URL thích hợp

Hãy xem thêm một ví dụ để xác thực một phần URL cụ thể

Trong ví dụ này, bạn đang xác thực một giao thức cụ thể trong URL. URL phải chứa giao thức

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
14 hoặc
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
4

const urlPattern = /[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?/;
0

Ví dụ về cách xác thực một phần của URL

Hãy gọi phương thức

	const isValidUrl = urlString=> {
	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
	  return !!urlPattern.test[urlString];
	}
8 cho các loại chuỗi và giao thức khác nhau và xem kết quả

const urlPattern = /[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?/;
2

Trong trường hợp đầu tiên, chuỗi URL [tcp. //www. jsowl. com] hợp lệ, nhưng nó không chứa một giao thức cụ thể [

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
17/
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
18]. Vì vậy, nó trả về false

Trong trường hợp thứ hai, chuỗi URL https. //www. jsowl. com hợp lệ và chứa giao thức cụ thể. Vì vậy, nó trả về đúng

Cách kiểm tra xem Chuỗi có phải là URL hợp lệ hay không bằng phần tử đầu vào

HTML hỗ trợ phần tử đầu vào có loại

	const isValidUrl = urlString=> {
	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
	  return !!urlPattern.test[urlString];
	}
3,  đặc biệt để biểu thị các giá trị URL

Thuộc tính

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
41 của phần tử
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
40 chứa chuỗi được tự động xác thực bằng cách đối sánh cú pháp URL [có URL trống hoặc được tạo đúng] trước khi có thể gửi biểu mẫu

Phương thức

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
42 được sử dụng để kiểm tra xem một chuỗi trong thuộc tính giá trị của phần tử  
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
40 có phải là
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
3 hay không. Phương thức
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
45 trả về
	const isValidUrl = urlString=> {
	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
	  return !!urlPattern.test[urlString];
	}
5 nếu giá trị là một URL thích hợp và
	const isValidUrl = urlString=> {
	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
	  return !!urlPattern.test[urlString];
	}
7 nếu đầu vào không phải là một URL thích hợp

Hãy tạo một phương thức tạo loại phần tử đầu vào

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
3 và xác thực đầu vào bằng phương thức
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
49

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
6

Bây giờ, hãy sử dụng phương thức này và xác thực các chuỗi khác nhau để xem chúng có phải là URL hợp lệ không

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
0

Đây là cách bạn có thể sử dụng phương thức nhập liệu để kiểm tra xem một chuỗi có phải là một URL hợp lệ hay không

Cách kiểm tra xem chuỗi có phải là URL hợp lệ hay không bằng phương pháp thẻ neo

Phần này hướng dẫn bạn cách sử dụng HTMLAnchorElement để kiểm tra xem một chuỗi JavaScript có phải là một URL hay không

Ghi chú. Bạn nên sử dụng phương pháp này khi muốn gán URL cho thẻ

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
00 trên trang web của mình và đảm bảo rằng chuỗi URL hợp lệ và được gán đúng cho thẻ
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
00

Giao diện

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
02 đại diện cho các phần tử siêu liên kết. Nó cung cấp các thuộc tính và phương thức đặc biệt để thao tác bố cục và trình bày các phần tử đó. Nó còn được gọi là thẻ neo

Bạn có thể gán URL cho thẻ neo bằng thuộc tính

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
03. Trong khi phân công,

  • Nếu một chuỗi URL hợp lệ được chuyển, nó sẽ được gán cho thẻ neo
  • Nếu một URL không hợp lệ được chuyển, vị trí trình duyệt hiện tại sẽ được gán cho thẻ neo
  • Theo mặc định, thẻ neo sẽ có một URL trống [“”]

Khi URL được chỉ định, bạn có thể trích xuất một phần cụ thể của URL bằng cách sử dụng các thuộc tính được giải thích bên dưới

HTMLAnchorElement atributeusage
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
04a chuỗi biểu thị tên máy chủ và port
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
05a chuỗi biểu thị tên máy chủ
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
03a chuỗi chứa URL hợp lệ
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
07trả về một chuỗi chứa nguồn gốc, lược đồ của nó, tên miền và cổng
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
08a chuỗi biểu thị cổng nếu được chỉ định
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
09a chuỗi biểu thị giao thức bao gồm dấu ['
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
30']
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
31a chuỗi chứa

Bây giờ, hãy xem cách kiểm tra xem chuỗi được chỉ định có phải là URL thích hợp không

Nếu đó là một URL thích hợp, nó sẽ được gán cho thẻ neo. Khác, vị trí trình duyệt hiện tại sẽ được gán cho thẻ neo

Vì vậy, để kiểm tra xem đó có phải là một URL thích hợp hay không, bạn có thể kiểm tra xem

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
04 của thẻ neo có KHÔNG bằng vị trí hiện tại hay không bằng cách sử dụng câu lệnh
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
33

Hãy nhìn vào mã

Chúng tôi tạo một hàm lambda và gán nó cho hằng số

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
34 trong mã bên dưới

Hàm tạo phần tử thẻ neo và gán chuỗi URL cho thẻ neo. Sau đó, nó kiểm tra xem thuộc tính

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
04 của phần tử có phải là
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
36 hay không được xác định

Nếu nó không phải là null, nó sẽ kiểm tra xem thuộc tính

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
04 KHÔNG bằng URL trình duyệt hiện tại hay không và trả về
const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
9 khi nó không bằng

Điều này là do nếu URL đã chuyển là hợp lệ, thì thẻ liên kết sẽ có giá trị URL. Nhưng nếu URL đã chuyển không hợp lệ, thẻ liên kết sẽ có vị trí trình duyệt hiện tại. Trong trường hợp này, hàm lambda trả về

	const isValidUrl = urlString=> {
	  	var urlPattern = new RegExp['^[https?:\\/\\/]?'+ // validate protocol
	    '[[[[a-z\\d][[a-z\\d-]*[a-z\\d]]*]\\.]+[a-z]{2,}|'+ // validate domain name
	    '[[\\d{1,3}\\.]{3}\\d{1,3}]]'+ // validate OR ip [v4] address
	    '[\\:\\d+]?[\\/[-a-z\\d%_.~+]*]*'+ // validate port and path
	    '[\\?[;&a-z\\d%_.~+=-]*]?'+ // validate query string
	    '[\\#[-a-z\\d_]*]?$','i']; // validate fragment locator
	  return !!urlPattern.test[urlString];
	}
0

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
1

Đoạn mã dưới đây gọi hàm lambda

const urlPattern = /[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?/;
00 với các đầu vào khác nhau và in đầu ra tương ứng trong bảng điều khiển

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
2

Hướng dẫn này có sẵn trong JSFiddle này

Phần kết luận

Trong bài viết này, bạn đã học cách kiểm tra xem một chuỗi JavaScript có phải là

const urlPattern = new RegExp['[?:https?]:\/\/[\w+:?\w*]?[\S+][:\d+]?[\/|\/[[\w#!:.?+=&%!\-\/]]]?'];
3 hay không bằng các phương pháp khác nhau và khi nào thì sử dụng từng phương pháp là phù hợp

Nếu bạn thích bài viết này, hãy chia sẻ nó

Bạn có thể xem các hướng dẫn khác của tôi trên blog của tôi, JS Owl

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

Vikram Aruchamy

Kiến trúc sư giải pháp AWS và người viết kỹ thuật toàn thời gian tại stackvidhya. com và jsowl. com

Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Làm cách nào để lấy giá trị thẻ neo trong JavaScript?

Sử dụng Phương thức querySelectorAll[] . phương thức querySelectorAll[] có thể được sử dụng để lấy giá trị của thuộc tính đích của liên kết hoặc thẻ neo.

Làm cách nào để thêm thẻ neo vào chuỗi JavaScript?

createTextNode["Đây là liên kết"]; . .
Create an anchor element..
Tạo một nút văn bản với một số văn bản sẽ hiển thị dưới dạng liên kết
Append the text node to the anchor element..
Set the title and href property of the element..
Append element in the body..

Làm cách nào để lấy văn bản bên trong JavaScript thẻ neo?

Sử dụng thuộc tính textContent để lấy văn bản của phần tử liên kết , e. g. const văn bản = liên kết. văn bảnnội dung. Thuộc tính textContent sẽ trả về nội dung văn bản của phần tử

What is anchor [< A >] tag?

An anchor là một đoạn văn bản đánh dấu phần đầu và/hoặc phần cuối của một liên kết siêu văn bản . Văn bản giữa thẻ mở và thẻ đóng là điểm bắt đầu hoặc điểm đến [hoặc cả hai] của liên kết. Các thuộc tính của thẻ neo như sau. HREF.

Chủ Đề