我正在嘗試從瀏覽器輸入欄位上的用戶輸入中洗掉非法字符。
const myInput = '46432e66Sc'
var myPattern = new RegExp(/^[a-z][a-z0-9]*/);
var test = myPattern.test(myInput);
if (test === true) {
console.log('success',myInput)
} else {
console.log("fail",myInput.replace(???, ""))
}
我可以使用正確的正則運算式進行測驗,它作業得很好。現在我正在嘗試洗掉非法字符。規則是,第一個位置只有小寫字母字符。所有剩余位置只能有小寫字母和數字 0-9。無空格或特殊字符。我不確定在替換行上使用什么模式。
感謝您的任何幫助,您可以提供。
布拉德
uj5u.com熱心網友回復:
你可以試試下面的代碼:
const myInput = '46432e66Sc'
var myPattern = new RegExp(/^[a-z][a-z0-9]*/);
var test = myPattern.test(myInput);
if (test === true) {
console.log('success',myInput)
} else {
console.log("fail",myInput.replace(/[^a-z0-9]/g, ""))
}
替換使用以下正則運算式:/[^a-z0-9]/g. 這匹配所有不是小寫或數字的字符。
您可以驗證您的正則運算式并從以下頁面上的備忘單獲得幫助:https : //regexr.com/
uj5u.com熱心網友回復:
您可以通過首先去除任何會導致輸入失敗的前導字符來處理此問題。然后對剩余的字符進行第二次清理:
var inputs = ['abc123', '46432e66Sc'];
inputs.forEach(i => console.log(i " => " i.replace(/^[^a-z] /, "")
.replace(/[^a-z0-9] /g, "")));
請注意,在我們洗掉了以小寫開頭的輸入所需的盡可能多的字符之后,洗掉非小寫/非數字的替換不會影響第一個字符,因此我們可以對整個字串進行全面替換.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/408017.html
標籤:
