我制作了一个带有文本区域和按钮的html文件,该按钮本质上应该过滤我也按照我需要的方式提交的字符串。
尝试使用功能包括,gsub并替换为多个变体。
let filtered = []
document.querySelector('#filter').addEventListener('submit',function (e){
filtered = e.target.elements.text.value
if (filtered.includes('Hi')){
console.log(filtered)
const filteredEl = document.createElement('div')
filteredEl.textContent = filtered
document.querySelector('#filtered').appendChild(filteredEl)
}
e.preventDefault()
})
我只需要A-Z字符并完全擦除不需要的字符,例如()等。 如果可能的话,没有任何空格。
答案 0 :(得分:1)
使用正则表达式通过否定字符集匹配并删除不是字母字符的所有内容:
document.querySelector('#filter').addEventListener('submit', function(e) {
const filteredText = e.target.elements.text.value
.replace(/[^a-z]+/gi, '');
if (filteredText.includes('Hi')) {
console.log(filteredText)
const filteredEl = document.createElement('div')
filteredEl.textContent = filteredText
document.querySelector('#filtered').appendChild(filteredEl)
}
e.preventDefault()
})
带有不区分大小写的[^a-z]
标志的 i
将匹配字母字符a
到z
之外的所有内容。
答案 1 :(得分:1)
欢迎来到regexp世界
const onlyCapitalLetters = value.replace(/[^A-Z]/g, '');
您可能还需要小写字母和空格
const onlyText = value.replace(/[^A-Za-z ]/g, '');
您甚至可以将regexp用作输入的模式
<input type="text" pattern="[A-Za-z ]*" ...>
您可以使用正则表达式here