jquery提取字符串中的数字或非数字

简介: jquery提取字符串中的数字或非数字

由于与第三方接洽,发现,三方数据中手机号mobile的值非常不规范,其中包括:手机号前后有空格、手机号中间有空格(130 2773 4666)、手机号中间存在特殊字符(130-2773-4666)等等;
数据产生的原因不再追问,问题是,我们需要在这毫无规则的字符串中提取出手机号,所以有了下述的提取数字的函数

提取字符串中的数字(不完全版)

module.exports = {
   
  onlyNumber(str) {
   
    return str.replace(/[^0-9]/gi, '');
  }
};

[^0-9]/ig是“非数字”的正则表达式类,在onlyNumber函数中,将删除字符串中任何位置的非数字字符;

看似完美,但是有一个小问题,当onlyNumber入参为null、undefined或无入参,函数就会报错

TypeError: Cannot read property 'replace' of undefined

所以,在函数内部增加了一个判断,如果是字符串,则进行转化,如果不是字符串,则直接返回原值;

提取字符串中的数字(完全版)

module.exports = {
   
  onlyNumber(str) {
   
    return str && str.replace(/[^0-9]/gi, '');
  }
};

输出:

module.exports.onlyNumber(); //undefined
module.exports.onlyNumber(null); //null
module.exports.onlyNumber(undefined);//undefined
module.exports.onlyNumber('');//
module.exports.onlyNumber('12d dd3-3*2 1-');//123321

提取字符串中非数字的字符

module.exports = {
   
  onlyString(str) {
   
    return str && str.replace(/\d/g, '');
  }
};

\d是“数字”的正则表达式类,在onlyString函数中,将删除字符串中任何位置的数字字符;

题外话

如果你不知道&&是怎么回事,看这里:https://www.yuque.com/morange/morange/ra8vtf
如果你不知道正则,看这里:https://www.yuque.com/morange/morange/tw78ov

目录
相关文章
|
19天前
|
JavaScript 前端开发 数据处理
jquery 字符串转数字
通过这些方法和技巧,我们可以灵活地处理字符串数据,确保它们能被正确地转换为数字类型,从而在JavaScript程序中进行有效利用。对于更复杂的数据处理需求,考虑使用正则表达式或自定义逻辑来增强转换的灵活性和准确性。欲知更多高级处理技巧和实战案例,推荐访问,那里有丰富的教程和解决方案,助您在编程之路上更进一步。
6 0
|
12月前
|
JavaScript
JQuery 获取选中多选框的value,合并成字符串传给后台
JQuery 获取选中多选框的value,合并成字符串传给后台
47 0
|
XML JavaScript 数据格式
JQuery 动态XML字符串添加节点
今天实现了动态的给一个XML字符串添加节点。
147 0
|
JSON JavaScript 数据格式
js jquery前台解析json字符串
一、js解析json字符串 eval()和JSON.parse() 对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,就是将该字符串放于eval()中执行一次。这种方式也适合以普通javascipt方式获取json对象,以下举例说明: var dataObj=eval("("+data+")");//转换为json对象
2249 0
|
JavaScript
jquery 删除字符串最后一个字符的方法
字符串:var s = "1,2,3,4,5,"目标:删除最后一个 ","方法: s=s.substring(0,s.length-1);字符串:var s2 = "img/upload/123.jpg"目标:获取文件名(不包含后缀名)方法: s2=s2.
589 0
|
JSON JavaScript 数据格式
JQuery文件上传及以Base64字符串形式呈现图片
一:上传之 首先,你必然得有一个 file input,如下:         其次,让我们 upload,如下: $.ajaxFileUpload({     url: '@ViewBag.
741 0
|
JSON 前端开发 JavaScript
ashx页面返回json字符串|jQuery 的ajax处理请求的纠结问题
纠结,整了半天的jquery的ajax请求数据。 遇到的问题: 1 ajax方法一直进入error方法里,进入到请求的.ashx页面。这个问题,我未找到是什么原因。反正我使用了一下的代码,就好了。 $.
1087 0
|
6月前
|
JavaScript
jQuery图片延迟加载插件jQuery.lazyload
jQuery图片延迟加载插件jQuery.lazyload