ctrl + shift 切换大小写

ctrl + shift切换选择文本的大小写(全部大写、全部小写或者首字母大写)

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name        ctrl + shift 切换大小写
// @namespace   ctrlnshift
// @match       http://tool-bcg.bwe.io/editor/promo.php?*
// @version     1.4
// @author      Tiger
// @grant       none
// @description ctrl + shift切换选择文本的大小写(全部大写、全部小写或者首字母大写)
// ==/UserScript==
class ToggleCase{
	constructor(id){
		this.el = document.getElementById(id);
		this.iCount = 1;
	}
	getStartIndex(){
		return this.el.selectionStart;
	}
	getEndIndex(){
		return this.el.selectionEnd;
	}
	toggle(start,selected,end){
		switch(this.iCount)
		{
			case 1:
				this.el.value = start + selected.toLowerCase() + end;
				this.iCount++;
			break;
			case 2:
				this.el.value = start + selected.replace(/(^|\s+)\w/g,s=>s.toUpperCase())+ end;
				this.iCount++;
			break;
			case 3:
				this.el.value = start + selected.toUpperCase() + end;
				this.iCount = 1;
			break;
		}
	}
	exe(){
		this.el.addEventListener('keydown',(e)=>{
			//if(e.shiftKey && e.key=='F9')
			if(e.shiftKey && e.ctrlKey)
			{
				e.preventDefault();
				let iStart = this.getStartIndex();
				let iEnd = this.getEndIndex();
				let sStart = this.el.value.substring(0,iStart);
				let sSelected = this.el.value.substring(iStart,iEnd);
				let sEnd = this.el.value.substring(iEnd,this.el.value.length);
				this.toggle(sStart,sSelected,sEnd);
				this.el.setSelectionRange(iStart,iEnd);
			}
		});
	}
}
let oTitle = new ToggleCase('title');
let oCode = new ToggleCase('couponCode');
let oDes = new ToggleCase('description');
oTitle.exe();
oCode.exe();
oDes.exe();