web-dev-qa-db-ja.com

A-Z 0-9のみを保持し、JavaScriptを使用して文字列から他の文字を削除します

私は文字列を検証して有効なURLを私たちのものにしようとしています

javascriptまたはjqueryを使用して、A-Z 0-9のみを保持し、文字列から他の文字を削除する必要があります

例えば ​​:

Belle’sレストラン

私はそれを次のように変換する必要があります:

Belle-s-Restaurant

したがって、文字は削除され、A-Z a-z 0-9のみが保持されます

ありがとう

41
M.E

.cleanup()メソッドをStringオブジェクト自体に追加すると、次のようにローカルメソッドを呼び出すだけで、JavaScriptの文字列をクリーンアップできます。

# Attaching our method to the String Object
String.prototype.cleanup = function() {
   return this.toLowerCase().replace(/[^a-zA-Z0-9]+/g, "-");
}

# Using our new .cleanup() method
var clean = "Hello World".cleanup(); // "hello-world"

正規表現の末尾にプラス記号があるため、1つのまたはそれ以上文字に一致します。したがって、出力には常に1つの'-'一連の1つ以上の英数字以外の文字:

# An example to demonstrate the effect of the plus sign in the regular expression above
var foo = "  Hello   World    . . .     ".cleanup(); // "-hello-world-"

プラス記号がなければ、結果は"--hello-world--------------"は最後の例です。

57
Sampson

または、他の文字の代わりにダッシュを入れたい場合は、次のようにします。

string.replace(/[^a-zA-Z0-9]/g,'-');
5
Nicolás

文字列がBizNameという変数に保持されていると仮定します。

BizName.replace(/[^a-zA-Z0-9]/g, '-');

BizNameには、要求された文字のみが含まれるようになりました。

2
TodPunk