鍍金池/ 問答/HTML/ 如何優(yōu)雅替換括號內(nèi)部的值?

如何優(yōu)雅替換括號內(nèi)部的值?

問題:列表中有如下結構的字符串若干:

1.月末(:日期)
2.月初(:日期)
……

需求:點擊對應的項,如在這里點擊 月末(:日期)這一項,那么在相應的input中的值為

月末(:日期)

再次點擊,input的值為

月末(月末(:日期))

以此類推。
類似這樣的操作邏輯javascript有什么比較好的實現(xiàn)方法嗎?

回答
編輯回答
陌上花

不知道是不是這意思?好像沒什么復雜的...我理解錯了?

<input type='text' id='in'/>
<ul>
<li onclick='return endClick();'>月末(:日期)</li>
<li>月初(:日期)</li>
</ul>
<script>
function endClick(){
let v=document.getElementById('in').value;
if(v=='')document.getElementById('in').value='月末(:日期)';
else
    document.getElementById('in').value="月末("+ v+")";
}
</script>
</p>

又看了一遍問題,發(fā)現(xiàn)似乎我確實理解錯了,但是我覺得這個問題需要從用戶的角度去理解這個事情.如果你要替換括號內(nèi)的內(nèi)容,當有多個括號的時候,替換哪一級別括號就成為了問題.你還需要知道當時的光標停留在那里,加入組件失去了焦點,還能獲得光標位置么?還是要用戶選擇要替換的部分?不論如何,從邏輯還是復雜度都會增加,反而不如現(xiàn)在這個,直接將當前值作為參數(shù)套用所選擇的公式來的簡單直接.另外,如果說要做前面所說的復雜公式的話,簡單的input恐怕就不夠了.

2018年4月17日 02:50
編輯回答
小曖昧

用正則表達式匹配第一個括號之前和最后一個括號之后的內(nèi)容,然后中間拼接上值本身即可。

2018年4月8日 03:21