Javascript 字符串 match() 方法返回错误 "Uncaught TypeError: Cannot read property ' toString' of null"

标签 javascript jquery reactjs

  • 下面是我的代码,用于将电话号码字符串与正则表达式匹配并返回 与电话号码匹配的字符串格式。它采用电话号码 “+12-787878”格式,正则表达式匹配后返回“+12”。

  • 此代码在 chrome、firefox 上运行良好,但只能在一个开发人员上运行
    机器返回错误,如“Uncaught TypeError: Cannot read
    属性“toString”为 null”。

Check out below code.
var countryDialCode = phone ?phone.match(CONSTANTS.EXTRACT_DIAL_NUMBER, '').toString(): '';

 CONSTANTS.EXTRACT_DIAL_NUMBER = '/^[+]\d+/g';
 phone = "+91-7778889078";
 expected output = "+91";

getDialCodes: function() {
    var phone = SessionStore.getLoggedInUserDialCode();
    if(phone && _.isEmpty(this.refs.contactComponent.refs.cellNumber.refs.input.value)) {

        // Below is the code to extract numbers followed by + sign from the given phonenumber string. 
        var countryDialCode = phone ? phone.match(CONSTANTS.EXTRACT_DIAL_NUMBER, '').toString(): '';

        this.refs.contactComponent.refs.cellNumber.refs.input.value = countryDialCode;
    }
}

最佳答案

当字符串不匹配时,match 方法返回 null,因此您不能对 null 数据类型调用 toString()。您可以按如下方式修复此错误。

$res=phone.match(CONSTANTS.EXTRACT_DIAL_NUMBER, '');
var countryDialCode = phone ? ($res==null? '': $res.toString() ): '';

关于Javascript 字符串 match() 方法返回错误 "Uncaught TypeError: Cannot read property ' toString' of null",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39408042/

相关文章:

javascript - 为什么我的 React Web App 在某些移动设备上看起来有很大不同?

javascript - "position: fixed"与包含 svg 元素的 div 一起使用时会导致许多问题

javascript - Jquery - 替换特定 div 容器内除外

php - 如何从 javascript 执行 php 头脚本?

javascript - ant-d 中如何获取上传文件的文件路径?

javascript - 尝试移动页面时重定向不起作用

javascript - javascript 字符串中带有转义 unicode 字符的字符串和非转义 unicode 字符之间有什么区别?

javascript - 是我,还是 John Resig 关于部分应用程序的热门博客文章不起作用?

javascript - 使用 jQuery $.each 与 Json 错误,有 1 个结果

jquery - 使用hoverIntent延迟鼠标悬停但不延迟鼠标移出