*(zero or more) trong regular expression
\d
: Match với một chữ số có giá trị trong đoạn [0, 9].
a+
: Chứa một hoặc nhiều hơn một ký tự a
liên tiếp.
a*
: Không chứa gì hoặc chứa nhiều ký tự a
liên tiếp.
-
TH
/\d*/
: Sẽ được hiểu là kiểm tra chuỗi không chứa hoặc chứa nhiều chữ số liền nhau. Tương đương với chuỗi đó chứa chuỗi rỗng hoặc chứa một số nguyên dương.abc123
bắt đầu bằngabc
nó ko phải dạng là số nguyên dương nên match với chuỗi rỗng => regex hợp lệ. Return chuỗi rỗng. Vì bạn ko khai báoflag
nào trong regex nên nó sẽ dừng check sau khi regex đã tìm được phần tử hợp lệ. Khai báo flagg
thì nó sẽ tiếp tục check các phần tử tiếp theo. -
TH
\d+
: Regex của bạn sẽ hiểu là kiểm tra chứa số nguyên dương không. Bắt đầu chuỗi làabc
không hợp lệ => check tiếp các phần tử tiếp theo là1
,2
,3
.123
là trường hợp chứa nhiều ký tự số. => Hợp lệ => Dừng check tại đây. Return là123
.
[Laravel] Hỏi về sort dữ liệu trong Laravel
Mình nghĩ là bạn có sử dụng dụng ORDER BY trong query như bình thường. Giả sử bạn có một list các jobs. Bạn thêm một field cho mỗi job để biết job có là VIP hay ko. Nếu là VIP thì ưu tiên được xếp ở đầu danh sách. Vậy hãy thêm order by field đó ở cuối cùng để cho VIP lên đầu danh sách kết quả trả về. Hoặc là select ra một field check VIP rồi order theo nó ở cuối cùng.
SELECT
title, code, created_at, is_vip
FROM jobs
ORDER BY
title DESC,
created_at DESC,
is_vip DESC
Bạn hãy thử xem nhé!
Laravel: Login sử dụng số điện thoại không cần mã nước?
Ý tưởng
Bạn có thể tham khảo ý kiến của mình. Mình nghĩ là bạn có thể:
- Thêm phần cài đặt vùng/mã vùng. Người dùng có thể cài đặt. Nhưng cái này cũng ko hay lắm.
- Detect dựa trên ip của người dùng. Dựa vào IP của request gửi lên, mình detect ra thông tin địa điểm mà người dùng truy cập đến. Từ đó suy ra mã vùng cho số điện thoại. Sử dụng GeoPlugin hay iplocation.
- Hay là kết hợp cả 2 cách trên, hoặc một cách nào khác mà mình chưa nghĩ ra.
GeoPlugin
Chẳng hạn sử dụng GeoPlugin, mình gửi IP qua api tới geoplugin để lấy thông tin location:
curl http://geoplugin.net/json.gp?ip=1.55.242.188
Mình có result json trả về:
{
"geoplugin_request":"1.55.242.188",
"geoplugin_status":200,
"geoplugin_credit":"Some of the returned data includes GeoLite data created by MaxMind, available from <a href='http:\/\/www.maxmind.com'>http:\/\/www.maxmind.com<\/a>.",
"geoplugin_city":"Hanoi",
"geoplugin_region":"Ha N\u1ed9i",
"geoplugin_areaCode":"0",
"geoplugin_dmaCode":"0",
"geoplugin_countryCode":"VN",
"geoplugin_countryName":"Vietnam",
"geoplugin_continentCode":"AS",
"geoplugin_latitude":"21.0333",
"geoplugin_longitude":"105.85",
"geoplugin_regionCode":"44",
"geoplugin_regionName":"Ha N\u1ed9i",
"geoplugin_currencyCode":"VND",
"geoplugin_currencySymbol":"₫",
"geoplugin_currencySymbol_UTF8":"\u20ab",
"geoplugin_currencyConverter":22718
}
IPLocation (npm package)
var iplocation = require('iplocation')
iplocation('56.70.97.8')
.then(res => {
/* res:
{
as: 'AS11286 KeyBank National Association',
city: 'Cleveland',
country: 'United States',
countryCode: 'US',
isp: 'KeyBank National Association',
lat: 41.4875,
lon: -81.6724,
org: 'KeyBank National Association',
query: '156.77.54.32',
region: 'OH',
regionName: 'Ohio',
status: 'success',
timezone: 'America/New_York',
zip: '44115'
}
*/
})
.catch(err => {
console.error(err)
})
Đó là ý kiến của mình mà bạn có thể tham khảo. Còn với facebook thì cả một hệ thống lớn và nó có hết thông tin, vị trí của mình thì lại khác rồi. Khi mình di chuyển địa điểm từ vùng này sang vùng khác là lên facebook nó đã có thông báo và hỏi rằng mình chuyển địa điểm bla bla.. Có muốn ghé thăm nhà hàng, khu du lịch bla bla...
Làm thế nào để freeze table columns bằng css?
Mình nghĩ bạn có thể tạo một container chưa table của bạn. Set postition: relative
cho container này.
Đồng thời sử dụng postition: absolute
cho các ô mà thuộc cột mà bạn muốn nó cố định ở phía bên trái.
Nếu muốn hiển thị thanh cuộn cho table, bạn có thể set overflow-x: auto
hoặc overflow-x: scroll
cho container.
Bạn nên tìm hiểu thêm về thuộc tính postion
và overflow
trong css để hiểu rõ tác dụng của 2 thuộc tính này.
- Position: Căn chỉnh vị trí của cho một element.
- Overlow: Giúp sử lý khi nội dung bên trong quá lớn gây tràn.