質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

213閲覧

text内容の末尾の文字の取得について

GoGobuchiking

総合スコア33

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/03/27 14:44

計算機を作っています。
id=kakkoをクリックした時のイベントとして、テキスト内容の末尾が数字以外だった場合に'('をテキストの続きに表示したく、以下のコードを書きました(全体の一部)。

$('#kakko').on('click', function(){ if(text.value.lastIndexOf('(') == -1 || text.value.lastIndexOf(')') == -1 || text.value.slice(-1) !=='0' || text.value.slice(-1) !== '1' || text.value.slice(-1) !== 2 || text.value.slice(-1) !== '3' || text.value.slice(-1) !== '4' || text.value.slice(-1) !== '5' || text.value.slice(-1) !== '6' || text.value.slice(-1) !== '7' || text.value.slice(-1) !== '8' || text.value.slice(-1) !== '9'){ text.value = text.value + '('; console.log(text.value.slice(-1)); } });

数字は全て網羅したつもりなのですが、実装できませんでした。
何か問題点がありましたら、ご指摘頂ければありがたいです。

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <title>keisanki</title> 6 <link rel="stylesheet" href="styles.css"> 7</head> 8<body> 9 <div class="container"> 10 <form> 11 <input type="text" id ="text1" name="text1" value=""> 12 <div> 13 <div class="other" id="C">C</div> 14 <div class="other" id="kakko">()</div> 15 <div class="other" id="C1">C1</div> 16 <div class="enzansi" id="waru">÷</div> 17 </div> 18 <div> 19 <div class="num_7-9" id="num_7">7</div> 20 <div class="num_7-9" id="num_8">8</div> 21 <div class="num_7-9" id="num_9">9</div> 22 <div class="enzansi" id="kakeru">×</div> 23 </div> 24 <div> 25 <div class="num_4-6" id="num_4">4</div> 26 <div class="num_4-6" id="num_5">5</div> 27 <div class="num_4-6" id="num_6">6</div> 28 <div class="enzansi" id="mainasu">−</div> 29 </div> 30 <div> 31 <div class="num_1-3" id="num_1">1</div> 32 <div class="num_1-3" id="num_2">2</div> 33 <div class="num_1-3" id="num_3">3</div> 34 <div class="enzansi" id="puls">+</div> 35 </iv> 36 <div> 37 <div class="num_0-0" id="zero">0</div> 38 <div class="num_0-00" id="num_00">00</div> 39 <div class="num_0-00" id="num_.">.</div> 40 <div class="enzansi" id="equal">=</div> 41 </div> 42 </form> 43</div> 44 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 45 <script> 46 $(function(){ 47 'use strict'; 48 var $selected = ''; 49 var text = document.getElementById('text1'); 50 var $text1 = text.value; 51 $('.num_7-9, .num_4-6, .num_1-3, .num_0-0').on('click', function(){ 52 if(text.value == ""){ 53 $selected = $(this).text(); 54 text.value = $selected; 55 console.log($selected); 56 }else { 57 text.value += $(this).text(); //文字列として一文字追加する 58 console.log(text.value); 59 60 } 61 }); 62 $('.enzansi, .num_0-00').on('click', function(){ 63 if(text.value == "" || text.value.slice(-1) == '+' || text.value.slice(-1) == '-' || text.value.slice(-1) == '×' || text.value.slice(-1) == '÷' || text.value.slice(-1) == '='){ 64 return; 65 }else { 66 text.value += $(this).text(); //文字列として一文字追加する 67 console.log(text.value); 68 69 } 70 }); 71 $('#C1').on('click', function(){ 72 text.value = text.value.slice(0, -1); 73 }); 74 $('#C').on('click', function(){ 75 location.reload(); 76 }); 77 $('#kakko').on('click', function(){ 78 if(text.value.lastIndexOf('(') == -1 || text.value.lastIndexOf(')') == -1 || text.value.slice(-1) !=='0' || text.value.slice(-1) !== '1' || text.value.slice(-1) !== 2 || text.value.slice(-1) !== '3' || text.value.slice(-1) !== '4' || text.value.slice(-1) !== '5' || text.value.slice(-1) !== '6' || text.value.slice(-1) !== '7' || text.value.slice(-1) !== '8' || text.value.slice(-1) !== '9'){ 79 text.value = text.value + '('; 80 console.log(text.value.slice(-1)); 81 } 82 }); 83 }); 84 </script> 85</body> 86</html>

CSS

1body{ 2 font-size: 70px; 3 font-family: Arial, sans-serif; 4 margin-top: 0px; 5} 6.container{ 7 width: 500px; 8 height: 500px; 9 margin: auto; 10 text-align: center; 11} 12#text1{ 13 width: 500px; 14 height: 50px; 15 margin : 0 10px; 16 font-size: 30px; 17 18} 19.num_4-6, .num_7-9, .num_1-3, .num_0-0, .num_0-00, .enzansi, .other{ 20 display:inline-block; 21 border: 1px solid #ddd; 22 border-radius: 50%; 23 cursor: pointer; 24 width: 100px; 25 height: 100px; 26 line-height: 100px; 27 margin-top: 10px; 28} 29.selected{ 30 background: #00aaff; 31 color: #fff; 32} 33#C, #kakko, #C1, #waru, #kakeru, #puls, #mainasu{ 34 color: #00aaff; 35} 36#equal{ 37 background: #00aaff; 38 color: #fff; 39}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2019/03/27 14:48

「実装できませんでした」とは「何をしたときに」「どうなると思って」「どうなったのか」を、出ているエラーなどと併せて、具体的に記述されたほうが回答を得られやすいと思います。
GoGobuchiking

2019/03/27 14:53

申し訳ございません。 テキストの末尾が数字の場合は ’(' を入力できないようにしたいと考えて、上記のコードを書いたのですが、実際はテキストの末尾が数字でも、’(' が入力されてしまいます。
guest

回答1

0

ベストアンサー

if(text.value.match(/\D$/)){ ...でどうでしょうか。

投稿2019/03/27 14:54

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GoGobuchiking

2019/03/27 15:09

御回答ありがとうございます。 試したところ出来ました。 matchについては存じておりましたが、正規表現が理解できませんでした。 しかしながら、正規表現を使うとここまでコードが短くなるのですね。 感動しました。正規表現について勉強するきっかけとなりました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問