今回やること
Hello, how's it going?
から不要な , と ? を削除して
Hello how's it going
にする。
I share this blog with my thoughts and creations from my daily programming, knowledge, and technology updates.
コード.gs
function myFunction() {
var values = ["文字列1", "文字列2"];
var pattern = createAndSearchPattern(values);
Logger.log(pattern);
}
function createAndSearchPattern(values) {
var pattern = "^";
for(var i = 0; i < values.length; i++) {
pattern += "(?=.*" + values[i] + ")";
}
return pattern;
}
|
コード.gs
function judgeIncudeHiraMatch() {
var str = 'カタカナ漢字とeisu';
var pattern = /.*[ぁ-ゟー].*/g;
var result = str.match(pattern);
Logger.log(result);
}
|
コード.gsfunction judgeIncudeHiraTest() {
var str = 'カタカナ漢字eisu';
var pattern = /.*[ぁ-ゟー].*/g;
var result = pattern.test(str);
Logger.log(result);
}
|
var pattern = /.*?(?=[.!?] ).|[^。!?\n]*.|.*$/g;
コード.gs
function doGet() {
return HtmlService.createHtmlOutputFromFile("index");
}
|
意訳この機能がやること 指定したHTMLファイルを表示する |
index.html
<!DOCTYPE html>
<html>
<head>
<style>
textarea {
width: 40vw;
height: 80vh;
}
</style>
</head>
<body>
<textarea id="ta"></textarea>
<textarea id="ta2"></textarea>
<script>
elem("ta").onkeyup = taKeyup;
function elem(id) {
return document.getElementById(id);
}
function taKeyup() {
var taStr = elem("ta").value;
var singleSenteceArray = splitToSingleSentece(taStr);
console.log(singleSenteceArray);
elem("ta2").value = singleSenteceArray
}
function splitToSingleSentece(str) {
var pattern = /.*?(?=[.!?] ).|[^。!?\n]*.|.*$/g;
var sentences = str.match(pattern);
var singleSentences = '';
for(var i = 0; i < sentences.length; i++) {
var sentence = sentences[i].trim();
singleSentences += sentence + '\n';
}
return singleSentences
}
</script>
</body>
</html>
|
var pattern = /.*\. *?.|.*\! *?.|.*\。*?.|.*\! *?.|.*/g;
var pattern = /[^.!?]*./g;
コード.gs
function myFunction() {
var value = '句点と改行で分割する。\n句点で分割する。Split by period. Split by period with newline.\n複数改行でも分割する。\n\n最後の文';
var pattern = /。\n+|。|\.\n+|\. |\n+/g;
var sentences = value.split(pattern);
Logger.log(sentences);
for(var i = 0; i < sentences.length; i++) {
var sentence = sentences[i];
Logger.log(sentence);
}
}
|
意訳この機能がやること 複数の文章 句点と改行 or 句点 or ピリオドと改行 or ピリオドと半角スペース or 改行 valueをpatternで分割する ログに出す 文章の数だけ繰り返す 文章ごとに ログに出す |
コード.gs
var obj = [
{"en": "Aries", "ja": "おひつじ座"},
{"en": "Taurus", "ja": "おうし座"},
{"en": "Gemini", "ja": "ふたご座"},
{"en": "Cancer", "ja": "かに座"},
{"en": "Leo", "ja": "しし座"},
{"en": "Virgo", "ja": "おとめ座"},
{"en": "Libra", "ja": "てんびん座"},
{"en": "Scorpius", "ja": "さそり座"},
{"en": "Sagittarius", "ja": "いて座"},
{"en": "Capriconus", "ja": "やぎ座"},
{"en": "Aquarius", "ja": "みずがめ座"},
{"en": "Pisces", "ja": "うお座"}
]
var pattern;
function filter_obj() {
var values = ['う', 'お'];
pattern = getAndPattern(values);
var filtered = obj.filter(judge);
var result = get_result(filtered);
Logger.log(result);
}
function judge(items) {
var regexp = new RegExp(pattern);
var judged = regexp.test(items["ja"]);
return judged;
}
function get_result(filtered) {
var result = [];
for (var i = 0; i < filtered.length; i++) {
result.push([filtered[i]["en"], filtered[i]["ja"]]);
}
return result;
}
function getAndPattern(values) {
var pattern = '^';
for(var i = 0; i < values.length; i++) {
pattern += '(?=.*' + values[i] + ')';
}
return pattern;
}
|
コード.gs
function getAndConditional() {
var str = 'ABO';
var regexp = /^(?=.*A)(?=.*O)/;
var result = regexp.test(str);
Logger.log(result);
}
|
コード2.gsfunction getAndConditional2() {
var str = 'ABO';
var values = ['A', 'O'];
var pattern = '^';
for(var i = 0; i < values.length; i++) {
pattern += '(?=.*' + values[i] + ')';
}
Logger.log(pattern);
var regexp = new RegExp(pattern);
var result = regexp.test(str);
Logger.log(result);
}
|
コード.gs
function myFunction() {
var str = 'ABO';
var target = 'AO';
var conjunction = getAndConditional(str, target);
Logger.log(conjunction);
}
function getAndConditional(str, target) {
var values = target.split('');
for(var i = 0; i < values.length; i++) {
var regexp = new RegExp(values[i]);
if(regexp.test(str) === false) {
return false;
}
}
return true;
}
|
意訳この機能がやること 対象の文字列 探したい文字列 対象の文字列の中に、探したい文字列がすべて含まれるか判定して ログにtrue, falseで出力する この機能がやること targetの文字列を一つずつ分けて 文字数の数だけ繰り返す /A/のパターンを作って strの中に含まれなければ falseを返す 最後までfalseが返らなければtrueを返す |
コード2.gsfunction myFunction() {
var str = 'ABO';
var values = ['A', 'O'];
var conjunction = getAndConditional(str, values);
Logger.log(conjunction);
}
function getAndConditional(str, values) {
for(var i = 0; i < values.length; i++) {
var regexp = new RegExp(values[i]);
if(regexp.test(str) === false) {
return false;
}
}
return true;
}
|
function myFunction() {
var str = 'ABO';
var result = /A/.test(str);
Logger.log(result);
}
|
コード.gs
function myFunction() {
var str = '今日の天気';
if(/今日|明日/.test(str)) {
Logger.log('ある');
} else {
Logger.log('ない');
}
}
|
意訳この機能がやること 対象の文字列を用意する strにあるかどうか調べたい文字列を|で区切る 見つかったときのメッセージをログに出す ない場合は 見つからなかったときのメッセージをログに出す |
コード.gs
function doGet() {
return HtmlService.createHtmlOutputFromFile("index");
}
|
意訳この機能がやること 指定したHTMLファイルを表示する |
index.html
<!DOCTYPE html>
<html>
<body>
<script>
myFunction();
function myFunction() {
var text = 'Good morning! お は よ!';
text = text.replace(/(?<![a-zA-Z0-9!?])[\s ](?![a-zA-Z0-9!?])/g, "");
console.log(text);
}
</script>
</body>
</html>
|
コード.gs
function doGet() {
return HtmlService.createHtmlOutputFromFile("index");
}
|
意訳この機能がやること 指定したHTMLファイルを表示する |
index.html
<!DOCTYPE html>
<html>
<body>
<textarea id="ta" style="height:120px"></textarea>
<button id="bt">空行削除</button>
<script>
var ta = document.getElementById("ta");
ta.value = "\n\n一行目\n二行目\n\n\n三行目";
var bt = document.getElementById("bt");
bt.onclick = remove_blank_line;
function remove_blank_line(){
ta.value = ta.value.replace(/^\n/gm, "");
}
</script>
</body>
</html>
|
意訳テキストエリア ボタン idがtaの要素を取得 taにテキストを入れる idがbtの要素を取得 btがクリックされたらremove_blank_lineを実行する この機能がやること ta内で先頭に改行がある場合はすべて複数行でも消す |
コード.gsfunction get_kanji(){
var str = "abcABC123abcABC123かなカナカナ仮名ひらがなカタカナカタカナ漢字";
var pattern = /[々〆〇〻㐂-頻]+/g;
var result = str.match(pattern);
Logger.log(result);
}
| 意訳この機能がやること 探索対象の文字列を用意しておく 今回書いた漢字のパターン 一致するものを探して ログに出す |
コード.gs
function doGet() {
return HtmlService.createHtmlOutputFromFile("index");
}
|
意訳この機能がやること 指定したHTMLファイルを表示する |
index.html
<!DOCTYPE html>
<html>
<head>
<style>
.ta {
width: 360px;
height: 120px;
}
.flag {
width: 60px;
}
.text_dimgray {
color: dimgray;
}
.text_orange {
color: darkorange;
font-weight: bold;
font-size: 16px;
}
.regexp {
font-size: 16px;
}
</style>
</head>
<body>
<label class="text_dimgray">この文字列の中から一致する文字列を探したい</label>
<br>
<textarea id="input" class="ta"></textarea>
<br>
<div class="regexp">.match(
<label class="text_orange">/
<input type="text" id="tb" class="text_orange" placeholder="一致させたい文字列">/
<input type="text" id="tb_flag" class="flag text_orange" placeholder="g,i,m等">
</label>)
</div>
<br>
<label class="text_dimgray">一致する文字列</label>
<br>
<textarea id="output" class="ta"></textarea>
<script>
var tb = document.getElementById("tb");
var tb_flag = document.getElementById("tb_flag");
var input = document.getElementById("input");
var output = document.getElementById("output");
tb.onkeyup = get_result;
tb_flag.onkeyup = get_result;
function get_result() {
var target = tb.value;
var flag = tb_flag.value;
var pattern = new RegExp(target, flag);
output.value = input.value.match(pattern);
}
</script>
</body>
</html>
|
意訳taのスタイル 幅 高さ flagのスタイル 幅 text_dimgrayのスタイル 文字色 text_orangeのスタイル 文字色 文字の太さ 文字サイズ regexpのスタイル 文字サイズ ラベル インプットエリア 正規表現を入力するエリア ラベル 出力エリア idがtbの要素を取得 idがtb_flagの要素を取得 idがinputの要素を取得 idがoutputの要素を取得 tbでキーが上がったらget_resultを実行する tb_flagでキーが上がったらget_resultを実行する この機能がやること tbのvalue(正規表現)を取得して tb_flagのvalue(フラグ)を取得して 正規表現のオブジェクトを作成して output(出力エリア)に一致する文字列を出力する |
コード.gs
function zen_han_lower() {
var zen = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var han = zen_han(zen);
var lower = get_lower(han);
Logger.log([zen, han, lower]);
}
function zen_han(zen) {
var han = "";
var pattern = /[A-Za-z0-9]/;
for (var i = 0; i < zen.length; i++) {
if(pattern.test(zen[i])){
var letter = String.fromCharCode(zen[i].charCodeAt(0) - 65248);
han += letter;
}else{
han += zen[i];
}
}
return han;
}
function get_lower(han){
var lower = han.toLowerCase();
return lower;
}
|
意訳この機能がやること 全角英数字を用意して zen_han()に渡して半角にした結果を受け取って それをget_lower()に渡して小文字にした結果を受け取って ログに出す この機能がやること 半角の入れ物を用意して 全角英数のパターンを用意して 受け取った全角文字列の数だけ以下を繰り返す 文字が全角英数なら 半角英数に変換して hanに追加して 全角英数以外なら そのままhanに追加する 出来上がったhanを返す この機能がやること 受け取った半角英数を小文字にして 返す |

コード.gs
function doGet() {
return HtmlService.createHtmlOutputFromFile("index");
}
|
意訳この機能がやること 指定したHTMLファイルを表示する |
index.html
<!DOCTYPE html>
<html>
<head>
<style>
.card {
width: 360px;
padding: 15px;
border-radius: 2px;
border: solid 1px lightgray;
box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.3);
}
.center {
text-align: center;
}
textarea,
input[type='text'] {
width: 95%;
font-size: 15px;
margin: 5px;
}
</style>
</head>
<body>
<div class='card'>
<p>
<label>テキスト入力欄</label>
<input type='text' id='keywords' class='text_midium'>
</p>
<p>
<label>漢字、ひらがな、カタカナ、英数字に一致</label>
<textarea id='ta'></textarea>
</p>
<p>
<label>一致しない文字</label>
<textarea id='ta2'></textarea>
</p>
</div>
<script>
var keywords = document.getElementById('keywords')
var ta = document.getElementById('ta')
var ta2 = document.getElementById('ta2')
keywords.focus()
keywords.onkeyup = split_text
function split_text() {
var str = keywords.value
var pattern = /[々〆〇〻㐂-頻]+|[ぁ-ゟー]+|[゠-ヿ]+|[ヲ-゚]+|[a-zA-Z0-9]+|[a-zA-Z0-9]+/g
var pattern2 = /[^々〆〇〻㐂-頻ぁ-ゟー゠-ヿヲ-゚a-zA-Z0-9a-zA-Z0-9]/g
var result = str.match(pattern)
var result2 = str.match(pattern2)
ta.value = result
ta2.value = result2
}
</script>
</body>
</html>
|
意訳cardのスタイル 幅 内側の余白 角丸 枠線 影 centerのスタイル 水平方向の位置 textareaと input type='text'のスタイル 幅 文字の起きさ 外側の余白 テキスト入力欄 一致した文字の結果を入れる欄 一致しなかった文字を入れる欄 idがkeywordsの要素を取得 idがtaの要素を取得 idがta2の要素を取得 文字の入力欄をフォーカスする 文字が入力されたらsplit_textを実行する この機能がやること 入力された文字を取得する 漢字、ひらがな、カタカナ、半角カタカナ、半角英数字、全角英数字に一致するそれぞれの正規表現 一致しない正規表現 入力された文字からpatternに一致するものを抜き出す 一致しない者を抜き出す taにresultを入れる ta2にresult2を入れる |
コード.gs
function get_hira_kana(){
var str = "abcABC123abcABC123かなカナカナ仮名ひらがなカタカナカタカナ漢字";
var pattern = /[ぁ-ゟー]+|[゠-ヿ]+/g;
var result = str.match(pattern);
Logger.log(result);
}
|
意訳この処理は以下を実行する 探索対象の文字列 ひらがなまたはカタカナのパターン 一致するものを探して ログに出す |
コード.gsfunction doGet(){
return HtmlService.createHtmlOutputFromFile("index");
}
| 意訳この処理は以下を実行する 指定したHTMLファイルを表示する |
index.html
<!DOCTYPE html>
<html>
<body>
<textarea id="ta"style="width:360px;height:10em;"></textarea>
<br>
<label><input type="checkbox" id="cb">ひらがなカタカナ以外</label>
<br>
<button id="bt">実行</button>
<script>
var bt = document.getElementById("bt");
var ta = document.getElementById("ta");
var cb = document.getElementById("cb");
bt.onclick = get_hira_kana;
function get_hira_kana() {
var value = ta.value;
var cb_checkd = cb.checked;
var result = get_result(value, cb_checkd);
alert(result);
}
function get_result(str, flag) {
var hira_kana = "[ぁ-ゟー]+|[゠-ヿ]+";
var not_hira_kana = "[^ぁ-ゟー゠-ヿ]+";
if (flag == true) {
var target = not_hira_kana;
}else{
var target = hira_kana;
}
var pattern = new RegExp(target, "g");
var result = str.match(pattern);
return result;
}
</script>
</body>
</html>
|
意訳テキストエリア 改行 ラベルとチェックボックス 改行 ボタン idがbtの要素を取得する idがtaの要素を取得する idがcbの要素を取得する btがクリックされたらget_joyoを実行する この機能がやること taの値を取得して チェック状態を取得して get_resultに渡す 返ってきたresultをアラートに出す この機能がやること ひらがなカタカナ ひらがなとカタカナ以外 もしflagがtrueなら targetを含まないパターンを作る falseなら targetを含むパターンを作る 正規表現オブジェクトを作り resultに一致する結果を入れて 返す |
コード.gsfunction doGet(){
return HtmlService.createHtmlOutputFromFile("index");
}
| 意訳.gsこの処理は以下を実行する 指定したHTMLファイルを表示する |
index.html<!DOCTYPE html>
<html>
<body>
<textarea id="ta"style="width:360px;height:10em;"></textarea>
<br>
<label><input type="checkbox" id="cb">常用漢字以外</label>
<br>
<button id="bt">実行</button>
<script>
var bt = document.getElementById("bt");
var ta = document.getElementById("ta");
var cb = document.getElementById("cb");
bt.onclick = get_joyo;
function get_joyo() {
var value = ta.value;
var cb_checkd = cb.checked;
var result = get_result(value, cb_checkd);
alert(result);
}
function get_result(str, flag) {
var target = "亜哀挨愛曖悪握圧扱宛嵐安案暗以衣位囲医依委威為畏胃尉異移萎偉椅彙意違維慰遺緯域育一壱逸茨芋引印因咽姻員院淫陰飲隠韻右宇羽雨唄鬱畝浦運雲永泳英映栄営詠影鋭衛易疫益液駅悦越謁閲円延沿炎怨宴媛援園煙猿遠鉛塩演縁艶汚王凹央応往押旺欧殴桜翁奥横岡屋億憶臆虞乙俺卸音恩温穏下化火加可仮何花佳価果河苛科架夏家荷華菓貨渦過嫁暇禍靴寡歌箇稼課蚊牙瓦我画芽賀雅餓介回灰会快戒改怪拐悔海界皆械絵開階塊楷解潰壊懐諧貝外劾害崖涯街慨蓋該概骸垣柿各角拡革格核殻郭覚較隔閣確獲嚇穫学岳楽額顎掛潟括活喝渇割葛滑褐轄且株釜鎌刈干刊甘汗缶完肝官冠巻看陥乾勘患貫寒喚堪換敢棺款間閑勧寛幹感漢慣管関歓監緩憾還館環簡観韓艦鑑丸含岸岩玩眼頑顔願企伎危机気岐希忌汽奇祈季紀軌既記起飢鬼帰基寄規亀喜幾揮期棋貴棄毀旗器畿輝機騎技宜偽欺義疑儀戯擬犠議菊吉喫詰却客脚逆虐九久及弓丘旧休吸朽臼求究泣急級糾宮救球給嗅窮牛去巨居拒拠挙虚許距魚御漁凶共叫狂京享供協況峡挟狭恐恭胸脅強教郷境橋矯鏡競響驚仰暁業凝曲局極玉巾斤均近金菌勤琴筋僅禁緊錦謹襟吟銀区句苦駆具惧愚空偶遇隅串屈掘窟熊繰君訓勲薫軍郡群兄刑形系径茎係型契計恵啓掲渓経蛍敬景軽傾携継詣慶憬稽憩警鶏芸迎鯨隙劇撃激桁欠穴血決結傑潔月犬件見券肩建研県倹兼剣拳軒健険圏堅検嫌献絹遣権憲賢謙鍵繭顕験懸元幻玄言弦限原現舷減源厳己戸古呼固股虎孤弧故枯個庫湖雇誇鼓錮顧五互午呉後娯悟碁語誤護口工公勾孔功巧広甲交光向后好江考行坑孝抗攻更効幸拘肯侯厚恒洪皇紅荒郊香候校耕航貢降高康控梗黄喉慌港硬絞項溝鉱構綱酵稿興衡鋼講購乞号合拷剛傲豪克告谷刻国黒穀酷獄骨駒込頃今困昆恨根婚混痕紺魂墾懇左佐沙査砂唆差詐鎖座挫才再災妻采砕宰栽彩採済祭斎細菜最裁債催塞歳載際埼在材剤財罪崎作削昨柵索策酢搾錯咲冊札刷刹拶殺察撮擦雑皿三山参桟蚕惨産傘散算酸賛残斬暫士子支止氏仕史司四市矢旨死糸至伺志私使刺始姉枝祉肢姿思指施師恣紙脂視紫詞歯嗣試詩資飼誌雌摯賜諮示字寺次耳自似児事侍治持時滋慈辞磁餌璽鹿式識軸七𠮟失室疾執湿嫉漆質実芝写社車舎者射捨赦斜煮遮謝邪蛇勺尺借酌釈爵若弱寂手主守朱取狩首殊珠酒腫種趣寿受呪授需儒樹収囚州舟秀周宗拾秋臭修袖終羞習週就衆集愁酬醜蹴襲十汁充住柔重従渋銃獣縦叔祝宿淑粛縮塾熟出述術俊春瞬旬巡盾准殉純循順準潤遵処初所書庶暑署緒諸女如助序叙徐除小升少召匠床抄肖尚招承昇松沼昭宵将消症祥称笑唱商渉章紹訟勝掌晶焼焦硝粧詔証象傷奨照詳彰障憧衝賞償礁鐘上丈冗条状乗城浄剰常情場畳蒸縄壌嬢錠譲醸色拭食植殖飾触嘱織職辱尻心申伸臣芯身辛侵信津神唇娠振浸真針深紳進森診寝慎新審震薪親人刃仁尽迅甚陣尋腎須図水吹垂炊帥粋衰推酔遂睡穂錘随髄枢崇数据杉裾寸瀬是井世正生成西声制姓征性青斉政星牲省凄逝清盛婿晴勢聖誠精製誓静請整醒税夕斥石赤昔析席脊隻惜戚責跡積績籍切折拙窃接設雪摂節説舌絶千川仙占先宣専泉浅洗染扇栓旋船戦煎羨腺詮践箋銭銑潜線遷選薦繊鮮全前善然禅漸膳繕狙阻祖租素措粗組疎訴塑遡礎双壮早争走奏相荘草送倉捜挿桑巣掃曹曽爽窓創喪痩葬装僧想層総遭槽踪操燥霜騒藻造像増憎蔵贈臓即束足促則息捉速側測俗族属賊続卒率存村孫尊損遜他多汰打妥唾堕惰駄太対体耐待怠胎退帯泰堆袋逮替貸隊滞態戴大代台第題滝宅択沢卓拓託濯諾濁但達脱奪棚誰丹旦担単炭胆探淡短嘆端綻誕鍛団男段断弾暖談壇地池知値恥致遅痴稚置緻竹畜逐蓄築秩窒茶着嫡中仲虫沖宙忠抽注昼柱衷酎鋳駐著貯丁弔庁兆町長挑帳張彫眺釣頂鳥朝脹貼超腸跳徴嘲潮澄調聴懲直勅捗沈珍朕陳賃鎮追椎墜通痛塚漬坪爪鶴低呈廷弟定底抵邸亭貞帝訂庭逓停偵堤提程艇締諦泥的笛摘滴適敵溺迭哲鉄徹撤天典店点展添転塡田伝殿電斗吐妬徒途都渡塗賭土奴努度怒刀冬灯当投豆東到逃倒凍唐島桃討透党悼盗陶塔搭棟湯痘登答等筒統稲踏糖頭謄藤闘騰同洞胴動堂童道働銅導瞳峠匿特得督徳篤毒独読栃凸突届屯豚頓貪鈍曇丼那奈内梨謎鍋南軟難二尼弐匂肉虹日入乳尿任妊忍認寧熱年念捻粘燃悩納能脳農濃把波派破覇馬婆罵拝杯背肺俳配排敗廃輩売倍梅培陪媒買賠白伯拍泊迫剝舶博薄麦漠縛爆箱箸畑肌八鉢発髪伐抜罰閥反半氾犯帆汎伴判坂阪板版班畔般販斑飯搬煩頒範繁藩晩番蛮盤比皮妃否批彼披肥非卑飛疲秘被悲扉費碑罷避尾眉美備微鼻膝肘匹必泌筆姫百氷表俵票評漂標苗秒病描猫品浜貧賓頻敏瓶不夫父付布扶府怖阜附訃負赴浮婦符富普腐敷膚賦譜侮武部舞封風伏服副幅復福腹複覆払沸仏物粉紛雰噴墳憤奮分文聞丙平兵併並柄陛閉塀幣弊蔽餅米壁璧癖別蔑片辺返変偏遍編弁便勉歩保哺捕補舗母募墓慕暮簿方包芳邦奉宝抱放法泡胞俸倣峰砲崩訪報蜂豊飽褒縫亡乏忙坊妨忘防房肪某冒剖紡望傍帽棒貿貌暴膨謀頰北木朴牧睦僕墨撲没勃堀本奔翻凡盆麻摩磨魔毎妹枚昧埋幕膜枕又末抹万満慢漫未味魅岬密蜜脈妙民眠矛務無夢霧娘名命明迷冥盟銘鳴滅免面綿麺茂模毛妄盲耗猛網目黙門紋問匁冶夜野弥厄役約訳薬躍闇由油喩愉諭輸癒唯友有勇幽悠郵湧猶裕遊雄誘憂融優与予余誉預幼用羊妖洋要容庸揚揺葉陽溶腰様瘍踊窯養擁謡曜抑沃浴欲翌翼拉裸羅来雷頼絡落酪辣乱卵覧濫藍欄吏利里理痢裏履璃離陸立律慄略柳流留竜粒隆硫侶旅虜慮了両良料涼猟陵量僚領寮療瞭糧力緑林厘倫輪隣臨瑠涙累塁類令礼冷励戻例鈴零霊隷齢麗暦歴列劣烈裂恋連廉練錬呂炉賂路露老労弄郎朗浪廊楼漏籠六録麓論和話賄脇惑枠湾腕";
if (flag == true) {
var pattern = new RegExp("[^" + target + "]+", "g");
} else {
var pattern = new RegExp("[" + target + "]+", "g");
}
var result = str.match(pattern);
return result;
}
</script>
</body>
</html>
| 意訳.gsテキストエリア 改行 ラベルとチェックボックス 改行 ボタン idがbtの要素を取得する idがtaの要素を取得する idがcbの要素を取得する btがクリックされたらget_joyoを実行する この機能がやること taの値を取得して チェック状態を取得して get_resultに渡す 返ってきたresultをアラートに出す この機能がやること 特定する漢字 もしflagがtrueなら targetを含まないパターンを作る falseなら targetを含むパターンを作る resultに一致する結果を入れて 返す |
コード.gs
function get_hiragana(){
var str = "abcABC123abcABC123かなカナカナ仮名ひらがなカタカナカタカナ漢字";
var target = "[ぁ-ゟー]+";
var pattern = new RegExp(target, "g");
var result = str.match(pattern);
Logger.log(result);
}
|
意訳この機能がやること 探索対象の文字列を用意しておく パターンの対象の文字列を決めて パターンを作って 一致するものを探して ログに出す |
Googleフォームには回答を判定するクイズモードがあります 今回はそのクイズモードで回答の判定とフィードバックについて書いていきます 「クイズモード」の表記: 日本語の表記は「テストにする」ですが 英語の表記は「Make this a quiz」となっています この記事ではそれ...