亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用正則表達式驗證數組中的多個郵政編碼

使用正則表達式驗證數組中的多個郵政編碼

白板的微信 2023-07-06 10:07:14
我正在嘗試創建一個根據正則表達式驗證郵政編碼的函數。用戶可以選擇一個或多個郵政編碼。當我輸入一個郵政編碼時,它工作正常,但是當輸入多個郵政編碼時,我只是得到未定義的結果這是我的功能const validatePostcode = (...postcode) => {  const postcodeRegex = /^[A-Z]{1,2}[0-9]{1,2}[A-Z]{0,1} ?[0-9][A-Z]{2}$/i;  if (postcode.length > 1) {    postcode.forEach((item) => {      console.log(item);      return postcodeRegex.test(item);    });  } else {    return postcodeRegex.test(postcode);  }};
查看完整描述

3 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

當 時,您不會返回任何東西postcode.length > 1。

相反,您正在遍歷postcode數組。函數內的 returnforEach不執行任何操作。

您需要決定該函數應返回什么。它應該只返回一個布爾值還是一個布爾值數組?

對于單個布爾值,您需要everysome

布爾數組只需使用map.


查看完整回答
反對 回復 2023-07-06
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

  1. postcode始終作為數組事件出現,您沒有將任何參數傳遞給函數。

  2. 即使您返回值,您也會迭代postcode數組forEach,但 的結尾forEach將返回,而不是undefined按您的預期返回。booleanarray

  3. 我使用了每種方法來測試所有元素是否通過postcode測試。這里它應該適用true于所有元素,false如果有的話它會是false

  4. 為了避免每次返回true都是空數組,我們應該檢查postcode.length > 0.

這是代碼:

const validatePostcode = (...postcode) => {

? const postcodeRegex = /^[A-Z]{1,2}[0-9]{1,2}[A-Z]{0,1} ?[0-9][A-Z]{2}$/i;

? return postcode.length > 0 && postcode.every(item => postcodeRegex.test(item));

};


查看完整回答
反對 回復 2023-07-06
?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

forEach 方法并不意味著返回任何值:lambda 的返回值被丟棄。這就是為什么你得到未定義的原因。也是if... else...沒用的。forEach 對于只有一個元素的數組效果很好。您需要一個接受 lmbda 并返回值的函數。根據您的需要every,它可能是(如果所有郵政編碼匹配,則返回 true)或者可能map(返回一個布爾數組,每個傳遞的郵政編碼一個)或some(如果至少一個郵政編碼匹配,則返回 true)


const validatePostcode = (...postcode) => {

? const postcodeRegex = /^[A-Z]{1,2}[0-9]{1,2}[A-Z]{0,1} ?[0-9][A-Z]{2}$/i;

? return postcode.map(item => postcodeRegex.test(item));

};


const validateAtLeastOnePostcode = (...postcode) => {

? const postcodeRegex = /^[A-Z]{1,2}[0-9]{1,2}[A-Z]{0,1} ?[0-9][A-Z]{2}$/i;

? return postcode.some(item => postcodeRegex.test(item));

};


查看完整回答
反對 回復 2023-07-06
  • 3 回答
  • 0 關注
  • 228 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號