Jqueryを使用している文字列から特殊文字を除外する

私は分析のためにいくつかのタイプのピクセルを実装しなければならず、URL文字列にセッションIDを渡す必要があります。私のsessionIDには特殊文字が含まれています。これは BFhGlzT6FBkDr2Zndp0!-1309 のようなものです この文字列から( - !)文字を削除する必要がありますが、jqueryを使ってこれをどのように達成できますか? jqueryがそれらの文字を削除してからレンダリングする前に、その文字をアナリティックへの訪問を報告しないようにする必要があります。

皆さん、助けてくれてありがとうございます。しかし、もう少し説明する必要があります。私のピクセルコードは、

img src="https://sometime.com/png?org_id=k8vif92&session_ id=T6PtTyRSqhGPYBhp84frwth67n6fL7wcLBFhGlzT6FBkDr2Zndp0!-130901808!1319637471144&m=2&m=2" alt="">

このピクセルが消える前に、私はsessionId文字列の文字を取り除いて削除する必要があります - そして、新しいセッションがあるたびにセッションIDが変わることに注意してください。私は一般的なコードを必要とするので、それはそれが特殊な文字を削除する必要がありますどのセッションIDに関係なく動作します。

0

5 答え

.replace を使用してみてください:

var token = "BFhGlzT6FBkDr2Zndp0!-1309";
token.replace(/[^A-Za-z0-9]/g, "");

これは、文字や数字ではない文字を削除します。より簡潔に:

token.replace(/\W/g, "");

(これはアンダースコアを置き換えません)

2
追加された
はい、これは単なるコード例です。しかし、正規表現はセッションID
追加された 著者 Alex Peattie,
明示的な文字を他のものと置き換える代わりに、彼はあなたが望むすべての文字のセットを作成し、そのセットの逆を取るので、それは望ましくないすべての文字を置き換えます...うまくいきますすべての文字列
追加された 著者 jyore,
答えに感謝しますが、セッションIDの文字は実行されるたびに同じではなく、セッションに応じて変更されることに注意してください。私は他の文字が何であるかにかかわらず、特殊文字を削除する必要があります
追加された 著者 Junoonis,

ブラックリストの-フィドル):

var url = "BFhGlzT6FBkDr2Zndp0!-1309";
document.write(url.replace(/[!\-]/g,""));

ホワイトリストの英数字(フィドル):

var url = "BFhGlzT6FBkDr2Zndp0!-1309";
document.write(url.replace(/[^a-z0-9]/ig,""));
1
追加された
さて、 - はクラスの最後の文字であるときにエスケープする必要はありません。
追加された 著者 Brad Christie,

すべての許可された文字を含む正規表現文字セットを定義します。たとえば、あなたは/[a-zA-Z0-9]/のように見えます。 補完文字セット [^ a-zA-Z0-9] で逆向きにして、それらの文字をすべて String.replace メソッドで削除します。 。

mystring = mystring.replace(/[^a-zA-Z0-9]/g, "");
0
追加された

You dont need jQuery for this. You can use JavaScript regex. See this jsfiddle

var code = "BFhGlzT6FBkDr2Zndp0!-1309";

code = code.replace(/[!-]/g,"");

alert(code);
0
追加された
var str = "BFhGlzT6FBkDr2Zndp0!-1309".replace("!-","");

fiddle: http://jsfiddle.net/neilheinrich/eYCjX/

0
追加された
@ mblase75:私はnheinrishのアプローチが好きだと言わなければならない。 1)それはまっすぐでポイントまでです。 2)人々は正規表現を締結するには速すぎる(特に、元の質問の簡潔さと曖昧さを考慮して)。 3)それは完全に受け入れられる答えです。
追加された 著者 Brad Christie,
大文字/小文字またはその他の非数値が文字列内で合法的であるかどうかを知るために十分な情報がありません。提供された情報に基づいて、これは2つの文字を削除する非常に単純な方法です。すべての非数値または "!"のすべてのインスタンスを削除したい場合は、または " - "、はい、よりよい解決策があるかもしれません。
追加された 著者 nheinrich,
@ mblase75を助けようとしています。 OPが2人のキャラクターのすべての変形を取り除きたいと言われたら、私はそれに違ったアプローチをしていたでしょう。
追加された 著者 nheinrich,
両方のインスタンスをすべて省略したい場合は! - str.replace(/ [! - ]/g、 "")を使用することができます。フィドル: jsfiddle.net/neilheinrich/zQ5Ya
追加された 著者 nheinrich,
これはあまりにも専門的かもしれません...それは最初に発生するマッチを置き換えるだけです...それはその順序でなければなりません...他の正規表現の解決策はより良いでしょう
追加された 著者 jyore,
私は質問を更新しました、上記を参照してください。
追加された 著者 Junoonis,
私はすべての特殊文字を省略したいです、この解決策は動作しますが、それは(! - )の最初のインスタンスを排除し、最後を残します!文字列に
追加された 著者 Junoonis,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript