【问题标题】:javascript find character in string from reversejavascript从反向查找字符串中的字符
【发布时间】:2020-11-19 12:23:00
【问题描述】:

我想在我的网站上使用特定的搜索功能。

即:在搜索文本框中输入用户类型

姓名:管理员,年龄:30

所以当用户键入 uname 并按回车键然后“:”自动添加并键入值“admin”然后再次按回车键时,我需要那种类型的 javascript 代码添加。等等……

请给我任何提示

当我添加“:”或“,”时我很困惑

提前谢谢你。

【问题讨论】:

  • 将最后添加的字符存储在变量中。当按下回车键时,将此变量更改为新值并将此字符添加到您的字符串中。
  • 但是当用户清理一些输入然后??
  • 您写过关于按回车键,没有清除输入...然后您可以检查清除了哪些字符,如果是 :,,请更改变量值。或者您可以计算:, 的数量,或数百万其他方式。一个小提示,像key:value,key:value 这样搜索不是个好主意,试着考虑一下。
  • 好的@pavel我会试试这个方法。

标签: javascript reactjs search


【解决方案1】:

如果我正确理解了您的问题,这应该可以:

const input = document.getElementById('search')
input.addEventListener('keypress', e => {
  if (e.keyCode === 13) {
    e.preventDefault()
    const value = e.target.value
    if (!value) return
    if (value.match(/^(\w+:\w+,)*\w+$/)) {
      e.target.value = value + ':'
    } else if (value.match(/^(\w+:\w+,)*\w+:\w+$/)) {
      e.target.value = value + ','
    }
  }
})
<input type="text" id="search">

或者如果你想清理输入和存储数据:

const input = document.getElementById('search')

let data = ''

input.addEventListener('keypress', e => {
  if (e.keyCode === 13) {
    e.preventDefault()
    const value = e.target.value
    if (!value) return
    if (!data || data.match(/^(\w+:\w+,)*$/)) {
      data += value + ':'
      e.target.value = ''
      console.log(data)
    } else if (data.match(/^(\w+:\w+,)*\w+:$/)) {
      data += value + ','
      e.target.value = ''
      console.log(data)
    }
  }
})
<input type="text" id="search">

【讨论】:

    猜你喜欢
    • 2010-09-06
    • 1970-01-01
    • 2016-01-26
    • 2021-12-22
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 2020-08-09
    • 2014-01-17
    相关资源
    最近更新 更多