只保留A-Z 0-9并使用javascript从字符串中删除其他字符

时间:2009-12-31 03:15:05

标签: javascript string replace

我正在尝试验证字符串以使我们的有效网址

我只需保留A-Z 0-9并使用 javascript jquery

从字符串中删除其他字符

例如:

Belle's Restaurant

我需要将其转换为:

千-S-餐厅

所以删除了字符,只保留了A-Z a-z 0-9

感谢

3 个答案:

答案 0 :(得分:51)

通过将我们的.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"

因为正则表达式末尾有一个加号,所以它匹配一个或更多字符。因此,对于一个或多个非字母数字字符的每个系列,输出将始终有一个'-'

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

如果没有加号,最后一个例子的结果将是"--hello-world--------------"

答案 1 :(得分:4)

或者如果你想把破折号放在其他字符的位置:

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

答案 2 :(得分:2)

假设字符串保存在名为BizName的变量中:

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

BizName现在应仅涉及所请求的字符。