Javascript - 在变量中交换数据 - 移动和替换

问题描述 投票:-1回答:3

我正在寻找一种简单的方法来移动和用javascript替换一些数据。这是一个例子......我总是有两个变量。每个都有一个单词,后跟<p>标签内的另一个单词,就像这样...... x="Hello<p>World</p>"y="Goodbye<p>People</p>" 步骤1)我不再需要x变量中的数据和<p>标签。从变量中删除它,使其成为x="Hello" 步骤2)我需要将x变量与y变量的第一部分交换。所以最终结果将是...... x="Goodbye"y="Hello<p>People</p>"

javascript string variables replace
3个回答
0
投票

有许多方法可以做这样的事情。以下使用regex plus string.replace。

let x="Hello<p>World</p>";
let y="Goodbye<p>People</p>";
console.log('x starts as '+x);
console.log('y starts as '+y);

const r=/^(.*)<p>(.*)<\/p>/;

const xresult = r.exec(x);
//xresult = ["Hello<p>World</p>", "Hello", "World"]
x=xresult [1];
console.log('x now equals '+x);

const yresult = r.exec(y);
//yresult = ["Goodbye<p>People</p>", "Goodbye", "People"]

//now swap
y = y.replace(yresult[1],x);
x = yresult[1];

console.log(`x = ${x} y = ${y}`);

请注意,这是对您的问题的字面答案。这可能不是您正在寻找的,因为它实际上取决于上下文。即,这只是一个字符串,还是你想要修改的HTML的结构化位(在这种情况下,DOM API可能是更好的方法)。


0
投票

尝试:

$(document).ready(function() {
    var x="Hello<p>World</p>";
    var y="Goodbye<p>People</p>";

   	 x = x.slice(0,x.indexOf("<p>"));
    var z= y.slice(0,y.indexOf("<p>"));

    y = y.replace(z,x);
    x = z;

    console.log("x=" + x + " y=" + y);

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

0
投票

事实证明这比我想象的要容易。刚刚使用了一些子串......

x = x.substring(0, x.indexOf('<p>'));
z = y.substring(0, y.indexOf('<p>'));
y = y.substring(y.indexOf("<p>"));
y=x+y;
x=z;
© www.soinside.com 2019 - 2024. All rights reserved.