字串查詢和替換
主要使用方法:
1. text.indexOf(“a”) ,在字串text文字中查詢字串a,若有,返回a首次出現的位置,若沒有返回-1。
2. text.split(“a”),以字串a分割字串text,並轉換為陣列形式,若a為空,則分割為單個字元
3. arr.join(“a”),將陣列轉換為字串,每項間以a相隔擷取字串text中下標strat到end之間的字串
主要思路:
1. 通過Id獲取要操作的文字內容text
var Otext = document.getElementById(“text”);
var Ovalue = Otext.innerHTML;
2. 設定按鈕,實現文字收縮展開功能。
Otext.innerHTML = Ovalue.substring(0,50);
收縮時,擷取段落前50個字元
off1=true;
off1=!off1;
為實現一次點選收縮,下次點選展開,需設定開關,設初值為true,點選一次,off1取反。
3. 查詢字串,新增黃色背景。
獲取使用者輸入的字串str
var arr1 = Ovalue.split(str1 );
用字串str分割字串,轉換為陣列
將陣列轉換為字串,每項間以加有黃色背景的str相隔
Ovalue = Otext.innerHTML;
替換後,更新P段落中的大段文字內容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* 邊框樣式 */
#div{
width:500px;
padding:10px;
border:5px solid yellowgreen;
margin:0 auto; }
/* 段落文字樣式 */
div p{
line-height:25px;
font-family: "微軟雅黑";
color:#333; }
/* 查詢、替換按鈕樣式 */
#div>div{
width:70px;
height:40px;
border:4px solid yellowgreen;
line-height:40px;
text-align: center;
float:left;
margin-left:10px;
margin-bottom:10px; }
.active{ background-color: #ffcd06; font-size: 18px; } /* 被選按鈕樣式 */
#div >p{ clear:both; padding-left:10px;}
#btn{ display:block; margin:0 auto;}
button{ width:60px; height:30px;} /* 輸入框後按鈕樣式 */
button a{
text-decoration:none;
text-align: center;
line-height:20px;
padding:3px; }
input{ height:25px; text-indent: 1em;} /* 輸入框樣式 */
</style>
</head>
<body>
<div id="div">
<p id="text">教養和文化是兩回事,有的人很有文化,但是很沒教養,有的人沒有什麼
太高的學歷和學識,但仍然很有教養,很有分寸。教養是帶有某種天生的素質和一點一滴的
積累。人生那麼長,未知的東西那麼多。人與人之間的關係往往是相互的,與人為善,也是
與自己為善。讓自己更平和一點,更豁達一點,對於身邊的過錯,讓自己更寬容一點。人人
都有他的難處,何必強求於人。人生在世,行路匆匆,生活充滿變數,時而樂極生悲,時而
苦盡甘來,一切不必較真,只須篤定前行。要敢於認錯,既然錯了,就要糾正,虛假是味毒
藥,真實能幫你把失去的贏回來;要敢於擔當,迴避不是辦法。人出生時,是一塊質樸的石
塊,有稜有角,生氣勃勃。但是,在生活無情的打磨中,人生慢慢被磨去稜角,變得圓滑而
世故。要做堅守在懸崖峭壁上石塊,勇敢忍受風霜的雕刻,永遠保留自己的稜角。不要做河
流裡的石頭,享受微波多情的撫摸,最後變成一塊光亮的鵝卵石。</p>
<div>查詢</div>
<div>替換</div>
<p>
<input id="Oinput1" type="text"/>
<button id="btn1"><a href="#">查詢</a></button>
</p>
<p>
<input id="Oinput2" type="text"/>
<input id="Oinput3" type="text"/>
<button id="btn2"><a href="#">替換</a></button>
</p>
<button id="btn"><a href="#">收縮</a></button>
</div>
<script>
var Otext = document.getElementById("text");
var Obtn = document.getElementById("btn");
var Ovalue = Otext.innerHTML;
var off1 = true;
var Odiv = document.getElementById("div").getElementsByTagName("div"); //獲取兩個選擇按鈕
var Op = document.getElementById("div").getElementsByTagName("p"); //獲取兩個選擇按鈕對應輸入框
// 初始值,預設選擇查詢
Odiv[0].className = "active";
Op[2].style.display = "none";
// 選擇查詢
Odiv[0].onclick = function () {
for(i=0;i<2;i++){
Odiv[i].className = "aaa"; // 取消兩個選擇按鈕的樣式
Op[i+1].style.display = "none"; //關閉兩個選擇按鈕對應輸入框
}
Odiv[0].className = "active"; //給查詢按鈕新增active樣式
Op[1].style.display = "block"; // 開啟查詢按鈕相應輸入框
}
// 選擇替換
Odiv[1].onclick = function () {
for(i=0;i<2;i++){
Odiv[i].className = "aaa";
Op[i+1].style.display = "none";
}
this.className = "active";
Op[2].style.display = "block";
}
var Bfind = document.getElementById("btn1"); // 查詢按鈕
var Breplace = document.getElementById("btn2"); // 替換按鈕
var Oinput1 = document.getElementById("Oinput1");
var Oinput2 = document.getElementById("Oinput2");
var Oinput3 = document.getElementById("Oinput3");
// 查詢按鈕
Bfind.onclick = function () {
if(Oinput1.value=="")
alert("please input"); // 如果點選查詢按鈕時,輸入框為空,彈出警示框
else{
str = Oinput1.value; // 輸入內容賦給str
if(Ovalue.indexOf(str)==-1)
alert("未找到查詢內容!"); // 若未找到查詢內容,彈出警示框
else{
var arr1 = Ovalue.split(str); //以str分割字串,轉化為陣列
var Ospan = arr1.join("<span style='background-color: yellow'>"+str+"</span>");
// 陣列每項間用帶有黃色背景的str連線,轉化為字串,賦給ospan
Otext.innerHTML=Ospan;
}
}
Ovalue = Otext.innerHTML; //更新P段落中的大段文字內容
}
// 替換按鈕
Breplace.onclick=function () {
if(Oinput2.value=="")
alert("please input");
else{
str1 = Oinput2.value;
str2 = Oinput3.value;
if(Ovalue.indexOf(str1)==-1)
alert("未找到需替換的內容!");
else{
var arr1 = Ovalue.split(str1);
var Ospan = arr1.join("<span style='background-color: yellow'>"+str2+"</span>");
Otext.innerHTML=Ospan;
}
}
Ovalue = Otext.innerHTML; //替換後,更新P段落中的大段文字內容
}
//收縮、展開按鈕
Obtn.onclick = function () {
if(off1){ // 判斷off1是否為真
Otext.innerHTML = Ovalue.substring(0,50); // 擷取段落前50個字元
Obtn.innerHTML="展開"; // 按鈕內文字由‘收縮’變為‘展開’
for(i=0;i<2;i++){ // 收縮時,關閉兩個選擇按鈕及相應輸入框
Odiv[i].style.display = "none";
Op[i+1].style.display = "none";
}
}
else{
Otext.innerHTML= Ovalue;
Obtn.innerHTML="收縮";
for(i=0;i<2;i++){
Odiv[i].style.display = "block";
Op[i+1].style.display = "block";
}
Odiv[0].onclick(); // 文字展開式,預設顯示選擇查詢按鈕
}
off1=!off1; // 因最終應實現點一次收縮,再點一次展開,故每次點選後off1取反
}
</script>
</body>
</html>
相關文章
- Linuxvivim查詢和替換字串命令Linux字串
- Python字串string的查詢和替換Python字串
- vim查詢替換
- 使用 sed 命令查詢和替換檔案中的字串的 16 個示例字串
- 使用sed 命令查詢和替換檔案中的字串的方法總結字串
- PostgreSQL 查詢替換函式SQL函式
- Find and Replace Pattern(C++查詢和替換模式)C++模式
- 如何在word中進行查詢與替換 word文件中的替換與查詢功能
- 替換快捷鍵ctrl加什麼 word查詢和替換快捷鍵是什麼
- vim下多行查詢替換簡單命令
- D4.玩轉查詢與替換
- Linux vi替換字串Linux字串
- Python實用技法第24篇:正則:查詢和替換文字Python
- 批次word文件內容查詢替換的方法
- js replace替換字串,同時替換多個方法JS字串
- Problem 4:替換空格(字串)字串
- js中字串全部替換JS字串
- js中字串的替換JS字串
- Linux的VI (連線行,查詢和替換,多檔案編輯)Linux
- 【Hive】字串替換函式translate和regexp_replaceHive字串函式
- Golang 字串分割,替換和擷取 strings.SplitGolang字串
- grep sed 大批次替換字串字串
- js替換字串裡的空格JS字串
- 字串查詢(字串雜湊)字串
- JavaScript replace()替換字串中指定字元JavaScript字串字元
- linux中批量替換文字中字串Linux字串
- JavaScript 替換字串全部指定內容JavaScript字串
- 7-15 字串替換 (6分)字串
- WinForm使用DataGridView實現類似Excel表格的查詢替換ORMViewExcel
- SQLserver2008批次替換字串SQLServer字串
- java字串%s格式化替換方法Java字串
- 正規表示式的字串替換方法字串
- SQL語句替換查詢結果的的寫法舉例SQL
- linux下查詢字串Linux字串
- linux批次find查詢檔案並批次替換覆蓋該檔案Linux
- 替換字串中的空格《演算法很美》字串演算法
- [Python] Pandas 對資料進行查詢、替換、篩選、排序、重複值和缺失值處理Python排序
- 程式等待和程式替換
- Elasticsearch 複合查詢——多字串多欄位查詢Elasticsearch字串