0

只保留字母和数字。

--I have a dog!!!应该导致I have a dog

I have a dog.应该导致I have a dog

4

5 回答 5

2

尝试用这个正则表达式替换:

/^[^a-z\d]*|[^a-z\d]*$/gi
于 2013-06-02T09:58:38.870 回答
1
s = "--I have a dog!!!"
s.replace(/^[^a-zA-Z\d]*(.*?)([^a-zA-Z\d])*$/, "$1")

请注意,这将完全按照您的要求进行。它将仅从字符串的开头和结尾删除非字母数字字符。字符串中间的所有非字母和非数字都不会被删除。

于 2013-06-02T10:03:37.410 回答
0

只需使用正则表达式并替换

'--I have a dog!!!'.replace(/[^a-zA-Z 0-9]*/g,''); // "I have a dog"

这将从字符串的每个位置删除除数字、字母和空格之外的任何其他字符。

如果您只想从开头和结尾显式删除,那么您将需要这样的东西:

'--I have !!! a dog!!!'.replace(/^[^a-zA-Z 0-9]*|[^a-zA-Z 0-9]*$/g,''); // "I have !!! a dog"

在regular-expressions.info了解更多正则表达式,也有 JavaScript 示例。

于 2013-06-02T09:58:11.683 回答
0

尝试这个:

var x = '--I have a dog!!!';
x = x.replace(/[^0-9A-Za-z\s]/g, '');

// results in "I have a dog"
于 2013-06-02T09:59:09.103 回答
0

使用正则表达式来解决这个问题:

var s = '--I have a dog!!!';
s = s.replace(/^[^a-z\d]*|[^a-z\d]*$/gi, '');
于 2013-06-02T10:03:00.550 回答