使用 replace() 替换字符串中的字符
Replacing characters in a string using replace()
我编写此 js 是为了从 select 语句中提取值,以构建用户将被发送到的 link。问题是我将它与 Shopify 一起使用,其中产品存储在
/products/handle
并且 Shopify 使用“-”替换“.”在 link 秒内。
我尝试了很多不同的方法来使用替换函数,将其用于角色的单个实例,将新值存储在不同名称的变量中,并在构建 link 时尝试执行替换.
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)
如果变量包含
var1 = '16.88'
var2 = '25.25'
var3 = '1'
预期输出为
/products/16-88x25-25x1
但实际输出是
/products/16.88x25.25x1
.
是regex中的一个特殊字符(它会匹配除行结束符以外的任何字符),需要用反斜杠转义:
val1.replace(/\./g,hyph)
例如
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)
您可以试试这个来解决您的问题。 .
表示一个字符。为了捕捉点,你必须做类似 \.
;
的事情
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);
我编写此 js 是为了从 select 语句中提取值,以构建用户将被发送到的 link。问题是我将它与 Shopify 一起使用,其中产品存储在
/products/handle
并且 Shopify 使用“-”替换“.”在 link 秒内。
我尝试了很多不同的方法来使用替换函数,将其用于角色的单个实例,将新值存储在不同名称的变量中,并在构建 link 时尝试执行替换.
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)
如果变量包含
var1 = '16.88'
var2 = '25.25'
var3 = '1'
预期输出为
/products/16-88x25-25x1
但实际输出是
/products/16.88x25.25x1
.
是regex中的一个特殊字符(它会匹配除行结束符以外的任何字符),需要用反斜杠转义:
val1.replace(/\./g,hyph)
例如
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)
您可以试试这个来解决您的问题。 .
表示一个字符。为了捕捉点,你必须做类似 \.
;
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);