编写正则表达式以匹配这些?,〜,^,|和*

时间:2018-07-23 08:18:16

标签: javascript jquery html

除了以下五个符号外,谁能帮助我创建正则表达式:?~^|*所有其他符号都应接受。

我的情况:我有一个文本框。我正在该文本框中输入一些文本,如果文本包含这些?~^|*符号,则应该抛出验证错误。

3 个答案:

答案 0 :(得分:1)

test与RegEx模式一起使用。将要检查的内容放入[]内。 focusout用于用户何时离开该文本框来检查用户输入。

$("#target").focusout(function() {
  var testString = $('#target').val();
  if (/[?~^|*]/.test(testString))
    console.log('Invalid character in input');
  else
    console.log('test pass')
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' id='target' />

答案 1 :(得分:0)

您可以使用if(yourstring.match(/[\?|\^|~|\||\*]/) != null) {/*Check input*/}。 您有很多要匹配的特殊字符,因此需要用反斜杠将它们全部转义。您仅接受符号时遇到的问题是因为您将^$放在了正则表达式的周围,这标志着字符串的开始和结束。要匹配字符串中的任何位置,只需不使用这些字符即可。

答案 2 :(得分:0)

这取决于您使用哪种语言,但是类似

[^?~^|*]+$

应该为您工作,因为“ []”定义了一个字符类,它将与列出的任何字符匹配。将“ ^”放在前面-取消匹配。

您可以详细了解否定类here;)