使用正则表达式测试字符串中的特定ASCII字符
Testing a string for specific ASCII characters using a regular expression
我正在努力确保字符串中没有任何奇怪的ASCII字符。
我正在尝试使用字符类和否定。
var tester =/[^'x00-'x001F'x007'x080-'xA1]+/i;
因此:00-1F、07之间没有ASCII字符;或80-A1。其他一切都应该很好。
离开很长一段时间后,我又回到了正则表达式。。。正则表达式不起作用。我希望像"hello"这样的字符串通过,而像"†ack!"这样的串失败。或者,我的JavaScript/jQuery代码错了吗?
代码:
var tester2 = /^[^'x00-'x1f'x80-'xa1]+$/;
$('#testButton').click(function(){
var text1 = $('#ackInput').val();
console.log("text: " + text1);
var allowed = tester2.test(text1);
var feedback = "allowed?" + allowed;
console.log(feedback);
$('#errorTestInputAllowedChars').text(feedback);
});
jsFiddle上的一个条目位于http://jsfiddle.net/jillrenee42/WE79e/2/.
您需要确保整个字符串匹配:
var tester = /^[^'x00-'x001F'x007'x080-'xA1]+$/i;
'x
表示法对我来说似乎不正确,当我尝试它时,它就起作用了:
var tester = /^[^'u0000-'u001F'u0080-'u00A1]+$/i;
在Javascript中,六进制代码是两位代码,因此以下代码适用于您:
/^[^'x00-'x1F'x07'x80-'xFF]+$/
Javascript Regex参考
所需范围的十六进制编码不正确。你想要这个代替
[^'x00-'x1f'x80-'xa1]
注意,我省略了'x07
,因为它已经在'x00-'x1f
的范围内了
编辑
正如Pointy所指出的,您将需要否定整个字符串。
相关文章:
- 修改 JavaScript 以使用 ASCII 字符或图像而不是文本
- 使用正则表达式测试字符串中的特定ASCII字符
- 如何将字符串中的ascii字符转换为jquery中的字符
- 使用Jquery仅切换按钮文本中的ASCII字符
- V8是否自动解析字符串中的ascii字符
- 从nodejs-crypto返回的字符串中修剪非ascii字符
- 将ASCII字符替换为等效字符
- 将ascii字符发送到mailto而不达到URL限制的最有效方法
- JavaScript 字符串中的转义控制和非 ASCII 字符(高位)
- 匹配除少数字符之外的 ASCII 字符
- 使字典中的键等于所有 ASCII 字符
- 使用 Javascript/Windows 批处理文件混合将非 ASCII 字符编码为 HTML
- 使用 Javascript REGEX 阻止特定范围的 ASCII 字符
- HTML 标签以 ASCII 字符显示
- Django表单中的非ASCII字符发出警告
- 如何将一组ascii字符转换为字符串
- Regex测试是否只有ASCII字符
- 如何在java脚本中对非ascii字符进行编码
- 编码URI(空格等)而不编码非ASCII字符
- 将2个ASCII字符与javascript进行比较