どうしてもJavaScriptで半角英数字を全角英数字に変換したくて
いろいろな方法を調べたが全角を半角に変換するのは沢山でてくるのだが
その逆の半角を全角にするやり方がでてこない。

そこで、JavaScriptの全角・半角変換を参考に改造させていただきました。
ありがとうございます。

正規表現とか使ってもっと効率の良い方法があると思いますが
時間がなかったので今回はこれでいきました。

JavaScriptで半角英数字を全角英数字に変換する

2011年10月12日 正規表現で半角英数字を全角英数字に変換する
JavaScriptで全角英数と半角英数の相互変換

// 半角にしたい
str.replace(/[A-Za-z0-9]/g, function(s) {
return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
});

// 全角にしたい
str.replace(/[A-Za-z0-9]/g, function(s) {
return String.fromCharCode(s.charCodeAt(0) + 0xFEE0);
});

function toZenkaku(str) {
var han = ["0", "1", "2","3", "4", "5", "6", "7", "8", "9",
"a","b","c","d","e","f","g","h","i","j","k","l","m",
"n","o","p","q","r","s","t","u","v","w","x","y","z",
"A","B","C","D","E","F","G","H","I","J","K","L","M",
"N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];

var zen = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"a","b","c","d","e","f","g","h","i","j","k","l","m",
"n","o","p","q","r","s","t","u","v","w","x","y","z",
"A","B","C","D","E","F","G","H","I","J","K","L","M",
"N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];

var to = [];

for (var i = 0 ; i < str.length ; i++) {
for (var j = 0; j < han.length; j++) {
if (str.charAt(i) == han[j]) {
to.push(zen[j]);
break;
}
}

if (j == han.length) {
to.push(str.charAt(i));
}
}

return to.join("");
}
AD
スマーティでWebサイトを制作してJavascriptの中にsmarty変数を使って
JSとsmartyを連携させたいと思ったけどこれがやっかいだったあせる

jsで{}をつかっているとsmartyエラーが出る!
これは、回避方法を知っていたので {literal} で囲んでそのまま表示させれるようにした。
でも、これだとsmarty変数使えなくない!?
ってことで、JSの{}の部分だけを{literal}で囲む方法にしてみたらできましたひらめき電球

Javascriptのソースにsmarty変数を書きこむやり方
{literal}
function hoge() {
{/literal}

 window.alert({$hogehoge});

{literal}
}
{/literal}


if文とか使っているとソースぐちゃぐちゃになるのでできれば違う方法を見つけたい。



tohokuaikiさんから別のやり方を教えていただきました。
ありがとうございます!
Smartyをnewした後に、デリミタの変更で見やすくできます。

$smarty = new Smarty();
$smarty->left_delimiter = '<{';
$smarty->right_delimiter = '}>';
という感じ。

これで、{$hoge}じゃなくて、<{$hoge}>で解釈されるので、JavaScript・CSSも問題なく掛けます。


こんな方法があるなんて知りませんでしたビックリマーク
今後使ってみよう。
AD
前からグーグルマップで地図にルート案内を付けたかった
のでこの情報はありがたいですひらめき電球

Google Map APIでルート表示をする

ルートポイントの指定
function plotRoute(overlay, latlng) {
// Create a new marker based on the coordinates
var marker = new GMarker(latlng);

// Instantiate the GDirections class
var directions = new GDirections(map);

// Add the new marker to the map
map.addOverlay(marker);

// Create the new array element
coordinates_array_element = latlng.lat() + "," + latlng.lng();

// Add the new array element to the map
coordinates.push(coordinates_array_element);

// If > one point on the map, plot the route between these two points
if (coordinates.length > 1) {
directions.loadFromWaypoints(coordinates);
}
}

呼び出し
GEvent.addListener(map, "click", plotRoute);


高速道路を回避したり、地点から次の地点まで
ユーザーに道案内を表示したり、距離の移動時間
を計算する方法も紹介されているので参考になりますニコニコ

Google Map APIでルート表示をする
AD