![](/img/trans.png)
[英]Javascript Regex to remove any spaces, special characters and numbers
[英]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.