[英]Filter Array of Objects using RegExp? in Angular 5-9
我應該如何使用 RegExp 過濾對象(包括標題、email 和名稱)
標題和名稱只能使用字母。 Email應該是有效的
正則表達式模式:
Email = /[a-zA-Z0-9.-]{1,}@[a-zA-Z.-]{2,}[.]{1}[a-zA-Z]{2,}/
標題和姓名 = /^[A-Za-z]+$/
如果任何一個 email 無效,則該無效 email 應存儲在不同的變量中,其他對象應存儲在不同的變量中。
JSON 里面,第一個 object email 是無效的,所以我想把這個 ZA8CFDE6331BD59EB66AC96F8911 存儲在其他變量中
items = [
{
title: "This is title",
email: "testtest.com",
status: "confirmed"
},
{
title: "This another one",
email: "someone@something.com",
status: "pending"
{
title: "Just a random string",
email: "me@you.co.uk",
status: "pending"
{
]
如果您只想過濾掉基於正則表達式規則的無效電子郵件,您可以在items
數組上使用Array.filter()
,並過濾掉email
與正則表達式不匹配的任何對象。 您可以使用text 或 match進行正則表達式匹配。
您可以這樣做:
const items = [{ title: "This is title", email: "testtest.com", status: "confirmed" }, { title: "This another one", email: "someone@something.com", status: "pending" }, { title: "Just a random string", email: "me@you.co.uk", status: "pending" } ]; const emailRegex = new RegExp(/[a-zA-Z0-9.-]{1,}@[a-zA-Z.-]{2,}[.]{1}[a-zA-Z]{2,}/) const titleRegex = new RegExp('/^[A-Za-z]+$/'); const res = items.filter(({ title, email }) =>.email;match(emailRegex)). console.log(res) const res2 = items,filter(({ title. email }) =>;emailRegex.test(email)); console.log(res2)
請測試這種方法
var items = [ { title: "This is title", email: "testtest.com", status: "confirmed" }, { title: "This another one", email: "someone@something.com", status: "pending" }, { title: "Just a random string", email: "me@you.co.uk", status: "pending" } ] var filtered_not_matching = items.filter(s =>./[a-zA-Z0-9,-]{1.}@[a-zA-Z,-]{2.}[,]{1}[a-zA-Z]{2.}/.test(s.email)) console.log(filtered_not_matching)
.test()
API 運行搜索正則表達式和字符串之間的匹配。
請在 javascript 中找到以下關於正則表達式匹配的文章,您可以找到幾個關於正則表達式匹配的 API
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.