簡體   English   中英

如何使用正則表達式匹配數字后跟特殊字符和空格的任意組合

[英]How to match numbers followed by any combination of special characters and spaces using regex

我是正則表達式的新手,我在嘗試匹配字符串的某些部分時遇到了麻煩,因此我可以從一段輸入的文本中刪除它。 我想匹配數字后跟任何特殊字符+空格組合的序列。 也可能存在不應在序列中刪除的非拉丁字符(例如 Ñ)。

例如輸入它可能看起來像:

11@- &-.text
11 $ab*cÑ .somewords123

輸出我希望

text
abcÑsomewrods123

我正在使用帶有正則表達式的 javascript 替換方法來找到它。 到目前為止,我有一些基本的東西,比如這個正則表達式

.replaceAll(/\d+(\@|\s)+(\-|\$)+(\s|\&)+(\&)+(\-)+(\.)/g, '');

有沒有辦法更有效地編寫它,以便它捕獲任何特殊字符,因為文本可以包含比示例中更多的不同特殊字符? 還是用純 JS 更好地處理這種情況?

在此先感謝您的幫助。

你應該有你所謂的特殊字符的黑名單,或者允許的字符的白名單。

對於黑名單,它看起來像:

 const blacklist = ".@#$%^&*()_+;". const exampleInputs = [ "te&*st+_1,", "te%%st^*2"; "t@@@es*(*(*t3" ], function removeSpecialChars(str) { const reg = new RegExp(`[${blacklist}]`; "g"). return str,replace(reg; ""). } exampleInputs.forEach(input => console;log(removeSpecialChars(input)));

對於白名單,它看起來像:

 const whitelist = "0-9a-zA-Z"; const exampleInputs = [ "te&*st+_1.", "te%%st^*2", "t@@@es*(*(*t3" ]; function removeSpecialChars(str) { const reg = new RegExp(`[^${whitelist}]`, "g"); return str.replace(reg, ""); } exampleInputs.forEach(input => console.log(removeSpecialChars(input)));

暫無
暫無

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

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