用.replace替换字符串中的空格

时间:2015-01-27 09:03:50

标签: jquery string replace

    $(document).ready(function(){
        $('.shoppingBasket tr').each(function() {
            var pName = $(this).find("span.pastorder-productname").text().trim().match(/\w*\s\X\d/g);

            if (pName != null) {
                var pQuantity = $(this).find("td.cart-quantity").text().trim();
                pName = pName.replace(/\s+/g, '');
                console.log(pName);

            }  
        });
    });

我有一小段代码来遍历收据中列出的所有项目并获取其名称(通常产品名称周围有额外的东西,我只想要产品名称“Something XY”我知道这个工作正常,好像我打印出pName这就是我的期望。

但是,我们发现我们使用的一些方法不喜欢名称中有空格,所以我的目标是使用.replace方法删除字符串中间的空格。

我尝试使用:

            var pName = $(this).find("span.pastorder-productname").text().trim().match(/\w*\s\X\d/g).replace(/\s+/g, '');

但是我得到了错误:Uncaught TypeError:无法读取属性'replace'of null

之后我尝试在循环中添加它并且:

            if (pName != null) {
                var pQuantity = $(this).find("td.cart-quantity").text().trim();
                pName = pName.replace(/\s+/g, '');
                console.log(pName);

            }  

但我收到错误:Uncaught TypeError: Cannot read property 'replace' of null

我很确定我做的事情很傻,但我不确定是什么,有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我设法让它为我工作:

            var pName = $(this).find("span.pastorder-productname").text().trim().replace(/\s+/g, '').match(/\w*\X\d/g);

这似乎给了我我想要的结果。

答案 1 :(得分:-2)

尝试:

if(pName!==null){
    pName = pName.text().replace(/\s+/g, '');
}