Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何转换具有特定标识符的字符串? Input:'text\uuuuu city\uuuuu text\uuuu city\uuuuu' 输出:“文本城市文本城市文本城市”_Javascript_Reactjs - Fatal编程技术网

Javascript 如何转换具有特定标识符的字符串? Input:'text\uuuuu city\uuuuu text\uuuu city\uuuuu' 输出:“文本城市文本城市文本城市”

Javascript 如何转换具有特定标识符的字符串? Input:'text\uuuuu city\uuuuu text\uuuu city\uuuuu' 输出:“文本城市文本城市文本城市”,javascript,reactjs,Javascript,Reactjs,特征的结果将传递到 这个组件是 Input: 'text __city__ text __city__ text __city__' Output: 'text <i>city</i> text <i>city</i> text <i>city</i>' 对于此问题() 我的职能是 <div dangerouslySetInnerHTML={{__html: content.replace(/(?:\r\n|\

特征的结果将传递到

这个组件是

Input: 'text __city__ text __city__ text __city__'

Output: 'text <i>city</i> text <i>city</i> text <i>city</i>'

对于此问题()

我的职能是

<div dangerouslySetInnerHTML={{__html: content.replace(/(?:\r\n|\r|\n)/g, '<br />')}}></div>
const transformText=(text)=>{
const tmp=text.split(“”“);
var-res='';
var检查=真;
对于(变量i=0;i

但将页面的其余部分拆分为IE11浏览器。

步骤1:转换输入文本

假设输入的格式为
“text\uuuuu city\uuuuuu text\uuuuu city\uuuuuu…text
__城市?
根据您的示例

const transformText = (text) => {
  const tmp = text.split('__');
  var res = '';
  var check = true;
  for (var i = 0; i < tmp.length-1; i++){
    check = !check;
    if (check) {
      res += '<i>'+tmp[i]+'</i>';
    } else if (tmp[i] != undefined){
      res += tmp[i];
    }
  }
  return res;
};
步骤2:在React组件中使用数组

假设变量
pairs
包含上述定义的文本/城市对,则以下是组件内部的
render
方法(如果它是基于类的)

render(){
返回(
    {pairs.map((对,索引)=>{ 返回
  • {pair[0]}{pair[1]}
  • ; })}
); }
首先,如果您的原始输入不是HTML,那么将其转换为HTML,然后使用
危险的HTML
是一个糟糕的主意。转换输入时,您的第一个目标应该是将其解析为文本/城市对的数组或散列。完成后,您只需迭代该数组并相应地呈现每一对,例如使用
  • 标记,或者在您喜欢的表中。最重要的是,你可以对每一对进行细粒度的、个性化的访问,这样你就可以随心所欲地做任何事情。从API中我得到一个字符串。很抱歉,我只能对您提供的代码进行注释。在这种情况下,正如我在前面的评论中所概述的,您的方法是非常错误的。字符串也可以是“city text city”。它们不是成对的值。已解析的const tmp=quote.title.split(“”“”);{tmp.map((e,key)=>(key%2==1?{e}:e))}@GiGa同样,我只能依靠您提供的示例来确定输入的格式。如果不同,您可以轻松地调整解决方案以适应不同的输入格式(正如您在前面的评论中所做的那样)。这里真正重要的是一般方法,正如你所看到的,这比你最初倾向于直接在单个字符串上操纵和操作要好得多(而且反应也更像),这种方法肯定更好。谢谢Jaxx
    const input = "text1 __paris__ text2 __london__ text3 __berlin__";
    // the following will turn the input into an array of the form
    // [ [text, city], [text, city], ... [text, city] ]
    const pairs = input.slice(0, -2).split('__ ').map(pair => pair.split(' __'));
    
    render() {
      return (
        <ul>
          {pairs.map((pair, index) => {
            return <li key={index}>{pair[0]} <i>{pair[1]}</i></li>;
          })}
        </ul>
      );
    }