2016-12-05 52 views
2

我有一個字符串,我想要顯示它的粗體字。javascript,分割字符串,並顯示一個單詞的大膽

this.splitSentence(exercise.sentence,boldWordIndex) 

所以我決定把字符串分成3部分;在粗體字,粗體字之前和之後。 所以我定義瞭如下功能。但我在加入時遇到問題,中間有三個詞沒有空格。而且我認爲應該有更好的方法。

splitedSentence(sentence,index) { 
     var splitedSentece = sentence.split(" "); 
     var slice1=splitedSentece.slice(0,index); 
     var slice2=splitedSentece.slice(index,index+1); 
     var slice3=splitedSentece.slice(index+1,splitedSentece.length); 
     return [slice1.join(" "),slice2.join(" "),slice3.join(" ")]; 
} 

obs!我在一個反應​​應用

+0

這可以幫助您? this.html(this.text()。replace('word','word')); – Troyer

+0

我不知道這個詞(值),我只是索引(數字),這是服務器提供的。一個包含句子字符串和單詞索引的對象。 –

+0

這裏是一個想法 - https://jsfiddle.net/jaromanda/gec1xy7o/ –

回答

1

寫這個,我希望這是你在找>>fiddle

class Example extends React.Component { 
    constructor(){ 
    super(); 
    this.state = { 
     word: '' 
    } 
    this.change = this.change.bind(this) ; 
    } 
    change(e){ 
    this.setState({ [e.target.name]: e.target.value}); 
    } 
    render(){ 
    const index = this.props.sentences.split(' ').indexOf(this.state.word); 
    const sentences = this.props.sentences.split(' ').map((item, key) => { 
     // index may come from server 
     return <Word classN={index === key ? 'foo' : ''} key={key} text={item} /> 
    }); 

    return <div> 
     <input name='word' type='text' onChange={this.change}/> <br/> 
      {sentences} 
    </div> 
    } 
} 

class Word extends React.Component { 
    render(){ 
    return <span className={this.props.classN}>{` ${this.props.text} `}</span> 
    } 
} 

React.render(<Example sentences={'Hello World from ReactJS'}/>, document.getElementById('container')); 
+0

非常感謝,這對我的項目的另一部分很方便,但我很抱歉,不能標記它是答案。因爲我希望它是另一個文件夾中的可導出功能,儘可能簡單,並且映射+其他組件使其變得有點複雜。但再次感謝。 –