- 締切済み
半角スペース削除について
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- blanc210
- ベストアンサー率55% (5/9)
>#4さま ご指摘ありがとうございます。 思いっきり PHP ですね・・・ 考え方だけ参考にしていただけたらと。
- Tacosan
- ベストアンサー率23% (3656/15482)
既に他の回答にあるように, 半角スペースを削除した文字列を別に作って ・削除した文字列を使って「禁止語句など」のチェックを行う ・「禁止語句など」がなければ, 以降の処理では削除する前の文字列を使う のが簡単かと. 「禁止語句などをチェックする」サブルーチンを作ってやればよいでしょう. ただ, 動作検証をするまでもなくそれが「Perl」で動くとは思えないんですが>#2.
- blanc210
- ベストアンサー率55% (5/9)
以下のようなのはいかがでしょう。 元の状態に戻す・・・というか、$str は加工されないので以降も元の状態で使えます。 禁止ワードは複数個あるでしょうし、区切り文字も半角スペースだけ考慮すればよい わけではないでしょうのでそれぞれ複数指定できるように。 ※動作検証はしていませんが概ねこんな感じ、ということで・・・。 $error = checkKinshiWord($str); if($error){ echo 「".$error."」と投稿することはできません。"; }else{ echo "禁止文字列は含まれません。"; } // $str は元の状態のままです echo $str; function checkKinshiWord($str){ // 禁止ワードの配列 $kinshi = array("あい", "うえお", "かきくけこ"); // 区切り文字の配列 $sep = array(" ", " ", ",", "・"); // 検出された禁止ワード $error = array(); // 区切り文字を削除した文字列 $doc = str_replace($sep, $str); foreach($kinshi as $k => $v){ // $doc 中に $v があるかどうかのチェック処理 // あれば if(){ $error[] = $v; } } return implode(', ', $error); }
- unacyo
- ベストアンサー率51% (35/68)
if( $str=~/バ[\s ]*カ/ ){ バとカの間に、半角もしくは全角スペースが0文字以上ある場合に真。 0文字以上なので、スペース無しでも引っ掛かる。 スペースを消してしまうと復元出来ませんから、上記みたいに入ったままでチェックするか、削除用変数にコピーしてコピーしたものに対してスペース削除を行い、投稿可能であれば、コピー元の文字列を投稿文字列として使うしかないと思います。
関連するQ&A
- 文字列に半角・全角スペースが入っているかをチェックする関数のおかしな結
文字列に半角・全角スペースが入っているかをチェックする関数のおかしな結果? 下記コードのように「文字列に半角・全角スペースが入っているかをチェックする関数」を作りました。 $textに入る文字列に半角・全角のスペースが入っているかをチェックします。 -------------------------------------------- my $text = "東 京"; if( isSpace($text) ) { print "スペースあり"; } else { print "スペースなし"; } sub isSpace{ my $str = shift || return(undef); if( $str =~ /.*[\s ]+.*/ ){ return(1); }else{ return(0); } } -------------------------------------------- しかしなぜか1行目を my $text = "メ"; とするとスペースが入っているという結果になってしまいます。 なぜ「メ」が入ると半角もしくは全角のスペースとみなされてしまうのでしょうか? また、どうすれば正しくチェックできるようになりますか? よろしくお願いします。
- ベストアンサー
- Perl
- テキストファイル内の半角スペースの削除
よろしくお願いします。 OS:Windows Server 2003,Windows 2000 Server MS-DOSコマンドによるバッチで、あるテキストファイル(.txt)内 を検索し、半角スペースがあった場合は半角スペースを 削除するというものを検討中です。 あるテキストファイルには、「Dir /s /a <ディレクトリパス>」(★) の結果が出力されています。 ※http://okwave.jp/qa2630050.htmlの「その他問題点」の 回避手段を考えています。 http://www.fpcu.jp/dosvcmd/bbs/log/cat3/cat54/4-0515.htmlを 参考にし下記のようにバッチを組みましたが、★の結果から 半角スペースを削除した内容になりません。 ------- set infile=%1 set outfile=%2 for /f "delims=" %%A in (%infile%) do call :sub "%%A" goto :eof :sub set STR=%~1 set STR=%STR: =% echo.%STR%>>%outfile% ------- 何がまずいのでしょうか? <DIR>という文字列を含んでおり、"<" や ">" を考慮する 必要がある気はしていますが、どのように修正すればよいか、 なかなかうまくいきません。 修正点やアドバイスをいただけると幸いです。
- 締切済み
- その他(プログラミング・開発)
- C言語 strcmp 半角スペースがあるとだめ?
C言語 strcmp 半角スペースが文字列に含まれている場合 文字列の比較がうまくいきません。半角スペースがあると比較できないのでしょうか? プログラム //strcmp #include <stdio.h> #include <string.h> int main(void){ char input[256]; char str[] = "HelloWorld!"; //char str[] = "Hello World!";だとうまくいかない。 printf("%s\n>", str); scanf("%s", input); if ( strcmp(input, str) == 0){ printf("同じです。\n"); }else{ printf("違います。\n"); } return 0; }
- ベストアンサー
- C・C++・C#
- 半角全角スペースの削除(先頭&末尾)
やまとです。 ある文字列の先頭と末尾のスペースを取り除きたいのですが、 どのようにしたら良いでしょうか? 事前に試した事が2つあります。 1.trim を使用する。 $aiueo = " あいうえ お "; $aiueo = trim($aiueo)); とすると、スペースが削除されます。 しかし、これでは全角のスペースが削除されないようですね。 2.置換する。 $aiueo = " あいうえ お "; $aiueo = str_replace( ' ', '', $aiueo ); とすると、全角のスペースが削除されます。 しかし、文字列の先頭と、末尾以外の全角スペースも削除されてしまう ようですね。 では、文字列の先頭と末尾の半角スペースと全角スペースを削除したい場合は どのようにしたら良いでしょうか? ご教授願います。
- ベストアンサー
- PHP
- JacaScriptのスペース削除について
JavaScriptのスペース削除についての質問です。以下のコードで、入力された値が空白又はAllブランクだった時の処理をしています。ここに、前後に全角半角スペースが入力された場合は、それを削除する、という処理を入れたいので、以下のようにしています。 /*(1)*/function trim(nameTXT) { return nameTXT.replace(/^[ \t\r\n]+|[ \t\r\n]+|[ \t\r\n]+|[ \t\r\n]+$/g, ""); } // 未入力またはスペース入力時のアラート及びフォーカス処理関数 function check() { var nameTXT = document.formMerchandise.name.value; if(trim(nameTXT).match(/ |\s+/)||trim(nameTXT)==""){ alert("商品名を入力してください"); document.formMerchandise.name.focus(); return false; } if(trim(nameTXT)>25){ alert("商品名は25文字までです"); document.formMerchandise.name.focus(); return false; } return true; } ネットを参考にしながらではあるのですが、(1)で自作メソッドを作成し、その中で「受け取った文字の前後にある全角半角スペースを削除して戻す」という処理を実装してみました。半角スペースに関しては期待通りの処理を行えたのですが、全角スペースに関しては削除されず、文字として認識されてしまっています。 例えば (半角スペース) " 商品名 "→"商品名" (全角スペース) " 商品名 "→" 商品名 " となってしまいます。半角スペースが削除されているので後少しとは思うのですが、どなたか教えて頂けないでしょうか?よろしくお願い致します。
- ベストアンサー
- JavaScript
- 全角スペースを半角スペースに変換
$str = mb_convert_kana($usersearch, "s", "EUC-JP"); $usersearch= $_POST['usersearch']; 上記のソースを記述し、htmlのテキストボックス(usersearch)内にある全角スペースを半角にしようと試みるのですが、上手く変換されません。何か解決策はないでしょうか?? 全体的にはこのようなソースです。 $search_query = "select * from kensaku2"; $str = mb_convert_kana($usersearch, "s", "EUC-JP"); $usersearch= $_POST['usersearch']; $clean_search = str_replace(',', ' ', $usersearch); $search_words = explode(' ', $clean_search); $final_search_words = array(); if (count($search_words) > 0) { foreach ($search_words as $word) { if (!empty($word)) { $final_search_words[] = $word; } } } // Generate a WHERE clause using all of the search keywords $where_list = array(); if (count($final_search_words) > 0) { foreach($final_search_words as $word) { $where_list[] = "syou LIKE '%$word%'"; } } $where_clause = implode(' AND ', $where_list); // Add the keyword WHERE clause to the search query if (!empty($where_clause)) { $search_query .= " WHERE $where_clause"; } よろしくお願いいたします。
- ベストアンサー
- PHP
- Javascript 全角カナ+半角スペース+全角スペースの正規表現について
初歩的な質問をしてすみません。 一応、自分でも試行錯誤で if (str.match(/[^ア-ンー\- ]+/g)){ alert("フリガナの項目を「全角カタカナ」のみで入力して下さい。"); } という条件を作ってみたのですが、半角スペースを入力したらTrueとなってしまいます。 全角カナ+半角スペース+全角スペース以外はFalseとなる正規表現を教えていただけないでしょうか。 以上、よろしくお願いします。
- 締切済み
- JavaScript
- 指定数ごとにスペースを入れる正規表現
10文字以上続く半角英数の場合、指定数ごとにスペースを入れるのはどう記述すればよいのでしょうか? 内容は、 $str1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $str2 = "ABCDEFGHI JKLMNOPQR STUVWXYZ"; $str3 = "あいうえおかきくけこさしすせそ"; という文字列があり 10文字以上続く半角英数なら5文字ごとにスペースを入れるようにしたいのです。 $str1は10文字以上半角英数が続くので、5文字ごとにスペースを入れて 『ABCDE FGHIJ KLMNO PQRST UVWXY Z』 と出力。 $str2は10文字以上続かないのでそのまま出力 $str3は半角英数ではないのでそのまま出力 としたいのですが この場合どのように記述すればよいのでしょうか? ご教授よろしくお願いします。
- ベストアンサー
- PHP
- 半角・全角スペースチェック
エクセルのVBAで質問です。 現在、仕事でデータのコンバートの作業をしています。 送られてくるデータはTXTもしくはCSVなのです。 それを決められたフォーマットに加工しています。 それで現在、置換やオートフィルタの組み合わせで行っている作業を 自動化できないかと思い質問させていただきます。 氏名を 性 名としたいのですが、姓と名の間に半角スペースとしたいのです。 ただ、送られてくるデータが全角スペースだったり、 半角スペースが3つあったりとバラバラの状態です。 なのでいつもは置換で半角スペースに変えながら、 オートフィルタで半角スペースひとつを含まないものを出して 修正している状態です。 VBAでこれらをチェックし、自動修正することは可能でしょうか? よろしくおねがいします。
- 締切済み
- オフィス系ソフト
- スペースの削除ができません
Perl初心者です。教えていただきたいことがあります。 CGIですが、HTMLのフォーム(テキストボックス)に名前を入力してもらうような場合に、名字と名前の間にスペースがあったりなかったりする状態が混在するのを避けるため、すべてスペースなしで値を受け取りたいと考えています。 仮に、"NAME"というテキストボックスとした場合、 $FORM{'NAME'} =~ s/ //g; $FORM{'NAME'} =~ s/ //g; このようにすれば、半角・全角スペースを削除できると思うのですが、どういうわけか動きません。スペースが入ったままで値が返ります。 ちなみに、CGIのファイルはEUCにしているのですが、なぜかSJISにすると動きます。ただ、SJISにすると別の支障があるのでできません。 情報が不足しているかもしれませんが、原因の検討がつきません。どなたが、考えられる原因をご指導いただけないでしょうか。 よろしくお願いします。
- ベストアンサー
- Perl