首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用replace()替换字符串中的字符

使用replace()替换字符串中的字符
EN

Stack Overflow用户
提问于 2020-03-25 22:08:57
回答 2查看 99关注 0票数 3

我编写这个js是为了从select语句中提取值,以构建一个用户将被发送到的链接。问题是,我在Shopify中使用它,产品存储在

代码语言:javascript
复制
/products/handle 

而Shopify使用'-‘来代替’‘。在链接中。

我尝试了许多不同的方法来使用replace函数,将其用于角色的单个实例,将新值存储在不同命名的变量中,并在构建链接时尝试执行replace。

代码语言:javascript
复制
myForm.addEventListener('submit', function(e){
    e.preventDefault();
    var val1 = document.getElementById("shortSide").value;
    var val2 = document.getElementById("longSide").value;
    var val3 = document.getElementById("widthSide").value;
    var hyph = '-';
    if(val1 != "default" && val2 != "default" && val2 != "Long Side" && val3 != "default" && val3 != "Width")
      window.location.href = "/products/" + val1.replace(/\./g,hyph) + "x" + val2.replace(/\./g,hyph) + "x" + val3;
    else
        alert("Fill out everything please!");
}, false)

如果变量包含

代码语言:javascript
复制
var1 = '16.88'
var2 = '25.25'
var3 = '1'

预期的输出将是

代码语言:javascript
复制
/products/16-88x25-25x1

但是实际的输出是

代码语言:javascript
复制
/products/16.88x25.25x1
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-25 22:12:20

.是正则表达式中的一个特殊字符(它将匹配除行终止符以外的任何字符),您需要使用反斜杠对其进行转义:

代码语言:javascript
复制
val1.replace(/\./g,hyph) 

例如。

代码语言:javascript
复制
var hyph = '-'
var val1 = '16.88'
var val2 = '25.25'
var val3 = '1'

console.log("/products/" + val1.replace(/\./g,hyph) + "x" + val2.replace(/\./g,hyph) + "x" + val3)

票数 6
EN

Stack Overflow用户

发布于 2020-03-25 22:16:07

你可以试试这个来解决你的问题。.表示一个字符。为了捕捉点,你必须做一些类似\.的事情;

代码语言:javascript
复制
var1 = '16.88'
var2 = '25.25'
var3 = '1';

let href = "/products/" + var1.replace(/\./g, '-') + 'x' + var2.replace(/\./g, '-') + 'x' + var3.replace(/\./g, '-');


console.log(href);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60850549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档