當單擊表中的值時,我將字符串添加到textarea。必須可以選擇和取消選擇表中的值,並且他們將自己從textarea中添加/刪除自己。 textarea必須是一個字符串,並且添加的值不能包含在任何其他字符中。正則表達式僅匹配字符串,而不是子字符串
正在加入可以potentailly有任何字符,並且可具有其他的值作爲子串中的一個的值,這裏是一些例子:HOLE 1
,HOLE 11
,HOLE 17
,HOLE (1)
,cutaway
,cut
,away
, cut-away
,Commentator (SMITH, John)
,(GOAL)
,GOAL
一旦值已追加到textarea的,它的點擊再次取消它,我在尋找的價值,像這樣將其取出:
var regex = new RegExp("(?![ .,]|^)?(" + mySelectedText + ")(?=[., ]|$)", 'g');
var newDescriptionText = myTextAreaText.replace(regex, '');
正則表達式正確匹配文本的字符串/子字符串,例如然而,cutaway
和away
不適用於以括號開頭的任何內容,例如(GOAL)
。將字邊界選擇器添加到表達式\b
的開頭,將使正則表達式匹配以括號開頭但不適用於包含相同文本的字符串/子字符串的字符串。
有沒有辦法實現這個使用正則表達式?或者其他一些方法?
這是一個正在運行的CodePen example的添加/刪除表。
你要對這個錯誤的方式。爲什麼不將選定的值保存在'array'中,並根據值更改時刷新'textarea'的內容? – Sebastian
我也在想這個,但用戶也可以在框中輸入,例如「看看HOLE 1'現在看看'HOLE 11' blah blah',但通過鍵入他們可以點擊'HOLE 1'並將其刪除,儘管再次考慮它,我可能會存儲一組對象包含字符串本身以及它在textarea中的當前開始位置 –