从正则表达式中获取不匹配的字符
Get non-matching characters from regex
我想得到与正则表达式不匹配的任何字符。例如,"abc123"将返回"123"、[1,2,3]
或类似内容。
有没有现成的方法来实现这一点?
$('input').on('keyup', function(){
var valid = /^[a-zA-Z's*]*$/.test(this.value);
console.log(valid);
});
http://jsfiddle.net/4JrWZ/
如果有人感兴趣,另一种解决方案是:
var x = this.value.split('').filter(function(v){
return !/[a-zA-Z's*]+/.test(v);
});
使用reduce
var result = "abc123def123".split(/[a-zA-Z's*]+/).reduce(function(prev, curr) {
return curr ? (prev.push(curr), prev) : prev;
}, []);
如果您希望结果为字符串
var result = "abc123def123".split(/[a-zA-Z's*]+/).reduce(function(prev, curr) {
return curr ? prev + curr : prev;
}, "");
/[^abc]+/.exec('abc123')
当字符与a、b或c不匹配时,返回这些字符。
相关文章:
- 高库存时期时间与时区不匹配
- react路由器使用简单的javascript路由器配置来处理不匹配的路径
- Javascript:图像与单选按钮的值不匹配
- 文本区域(jQuery)的结果不匹配
- 如果状态不匹配,则缩小为丑陋
- 为什么我网页的facebook点赞数与该网页的facebook页面不匹配
- 使用jscodeshift添加表达式时,错误{..}与类型字符串不匹配
- JavaScript正则表达式不匹配
- AngularJs正在解码HTML字符(不需要)
- 使用正则表达式查找字符串中的不匹配字符
- 从正则表达式中获取不匹配的字符
- 当按键不匹配时删除输入字符
- 正则表达式不匹配序列中的两个相同字符
- 确定字符串是否包含不在字符列表中的字符,如果是,则确定哪些字符不匹配
- 正则表达式与专业 unicode 字符不匹配
- 如果数组中的字符串不匹配,请从字符串中删除字符串字符
- Javascript正则表达式与表单中的最后一个字符不匹配
- 需要识别正则表达式中的不匹配字符
- Jquery/Form -检查输入字段长度至少为5个字符-并且也不匹配某些单词
- 不匹配特定非标准字符的十六进制或十进制代码的正则表达式