簡體   English   中英

如何根據 JavaScript 中的白名單字符檢查字符串?

[英]How to check string against whitelisted characters in JavaScript?

我有一些代碼可以轉換用戶輸入以確保唯一允許的字符是 abcdefghijklmnopqrstuvwxyz-0123456789

https://jsfiddle.net/py4pnr0L/

value = 'GHJHlk;sxa787BVK'
value = value.toLowerCase()
value = value.replace(/[^a-z0-9\-]/gi, '-')
console.log(value)

返回:ghjhlk-sxa787bvk

我將如何不進行轉換,而只是測試以查找給定字符串是否包含超出允許范圍的字符?

我想知道的是給定輸入字符串的真/假。

我使用的是 ES2015,所以如果使用 ES2015 可以使用最干凈的解決方案,那就沒問題了。

您可以使用 match 方法,嘗試以下操作:

 value = 'GHJHlksxa787BVK'; console.log(!value.match(/[^a-zA-Z0-9\\-]/))

您可以使用RegExp#test()方法:

執行搜索正則表達式和指定字符串之間的匹配項。 返回truefalse

此方法不應使用/g修飾符,以便lastIndex屬性不會弄亂結果。 請參閱為什么在 Javascript 中帶有全局標志的 RegExp 會給出錯誤的結果? 詳情。

您的正則表達式/[^a-z0-9-]/i (匹配任何不在azAZ0-9范圍內的字符,而不是- )可以在這里使用。 只需取出/g

 var value = "GHJHlksxa787BVK"; document.body.innerHTML = /[^a-z0-9-]/i.test(value);

/i是不區分大小寫的修飾符, /[az]/i = /[A-Za-z]/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM