前端搜索高亮:
整段多个关键词:
highlight(str) {
let keyWord = this.keyWord.split(' ')
let newStr = str
keyWord.forEach(item => {
const reg = new RegExp(item, 'ig')
newStr = newStr.replace(
reg,
`<span style="color: #0672FF">${item}</span>`
)
})
return newStr
}
看实际情况,关键词多的情况下后端返回高亮片段最好。
剔除富文本标签:
function matchReg(str){
let reg=/<\/?.+?\/?>/g;
console.log(str.replace(reg,''));
}
input只能输入数字/禁止空格:
<el-input
placeholder="请输入"
v-model="str"
@keypress="keydown"
@paste.capture.prevent="() => {}" // 阻止粘贴
type="number"
></el-input>
const keydown = (e: { key: string; returnValue: Boolean }) => {
let key = e.key
let arr = ['e', '+', '-', '.']
if (arr.includes(key)) {
e.returnValue = false
return false
}
return true
}
// 禁止空格
const keydown = (e: { key: string; returnValue: Boolean }) => {
let key = e.key
let arr = [' ']
if (arr.includes(key)) {
e.returnValue = false
return false
}
return true
}
表单提交校验定位 ts:
// 表单验证方法
// validate(valid, object)
//
if (valid) {
} else {
let split = []
for (let i in object) {
split.push(i)
}
let dom = split[0]
let DOM = document.getElementById(dom) as HTMLLIElement
DOM.scrollIntoView({
block: 'start',
behavior: 'smooth'
})
console.log('error submit!!')
return false
}
base64转图片
dataURLtoFile(dataurl, filename) {
let arr = dataurl.split(','),
mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]),
n = bstr.length,
u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
return new File([u8arr], filename, { type: mime })
}