除了以下五个符号外,谁能帮助我创建正则表达式:?~^|*
所有其他符号都应接受。
我的情况:我有一个文本框。我正在该文本框中输入一些文本,如果文本包含这些?~^|*
符号,则应该抛出验证错误。
答案 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)