一尘不染

显示在值中找到的所有特殊字符

javascript

我有一个输入元素,点击一个按钮,我检查它的值是否包含一组特殊字符并返回一个布尔值,它工作正常。我想要实现的是一旦返回布尔值,如果在我想在 ap 标签中显示这些特殊字符的值中找到任何特殊字符。我怎样才能做到这一点?提前致谢。

const format = /[ `!@#$%^&*_+-=\[\]{};':"\\|<>\/?~]/
const value = $('input').val()
$('button').on('click', function() {
  if (format.test(value) == true) {
    //something like this
    $('p').html(the found special character + 'not allowed')
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input />
<button>click me</button>
<p></p>

阅读 93

收藏
2022-07-26

共1个答案

一尘不染

如果您正在寻找非字母数字字符,我会/[^A-Z0-9,]/ig改用。还使用 match 允许您查看结果是否存在并显示它们

const format = /[^A-Z0-9,]/ig

$('button').on('click', function() {
  $('p').html("")
  const value = $('input').val()
  const results = value.match(format)
  if (results) {
    $('p').html(results.join(',') + ' is not allowed')
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input />
<button>click me</button>
<p></p>
2022-07-26