我有這段代碼:
string.replace(/[~!@#$%^&*()_\- ={}[\]|"':;?,/><,\\]/g,'');
我想從域中洗掉所有無效字符。它作業正常,但另外我想-從末尾洗掉字符(如果它在這里)。
所以,te-!#$#@$@#st-.com會te-st.com。
我嘗試添加類似的東西[-]$,所以代碼如下所示:
string.replace(/[~!@#$%^&`*()_\ ={}[\]|"':;?,/><,\\][-]$/g,'')
但這行不通,有什么想法嗎?
uj5u.com熱心網友回復:
你應該在這里使用交替:
string.replace(/[~!@#$%^&`*()_\ ={}[\]|"':;?,\/><,\\]|- (?=\.)/g, '')
演示
此正則運算式模式表示匹配:
[~!@#$%^&*()_\ ={}[\]|"':;?,\/><,\\]匹配一個符號|或者- (?=\.)匹配 1 個或多個破折號后跟點(但不消耗點)
uj5u.com熱心網友回復:
也許使用替換函式:
const firstIndex = string.indexOf('-');
string.replace(/[~!@#$%^&*()_\- ={}[\]|"':;?,/><,\\]/g,
(match,offset) => offset === firstIndex ? match : ''
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/533751.html
上一篇:js:使用替換方法去除所有非字母數字的字串,但有例外?
下一篇:正則運算式查找其中包含單詞的評論
