jQuery / JavaScript clean字符串,所以只存在单词

时间:2014-01-27 09:24:42

标签: javascript jquery regex

我有这个字符串,文字与标签,空格,CR / LF以及可能更特殊的字符混合在一起。

我怎样才能清理字符串,以便我只剩下单词。

我试过了明显的

var txtArr = dirtyString.split(" ");

这当然会产生一些结果,但还不够好,因为它会使所有带有标签或CR / LF的东西或者你有什么不是一个字母也不是数字但不是 - empty-space-both,显示为字符串中紧邻它的单词的连接词,从而使单词数量少于预期,并且也不正确。

所以,我有点卡住了。对于像这样的东西,可能有一个正则表达式技巧。我很欣赏一些意见。感谢。

3 个答案:

答案 0 :(得分:2)

解决问题的一个简单方法是使用Pattren匹配 尝试:
var txtArr = dirtyString.split(/\s/g);

\s表示仅查找空格(滑动单词) 这里没有使用\S,但很好地提到它只用于选择没有空格的char序列 \w这里没有使用,但很高兴提到它过去只选择单词 /g表示Global - 替换所有结果,而不仅仅是第一个结果 详细了解JavaScript的正则表达式方法和用法here

答案 1 :(得分:2)

试试这个

var dirtyString = "avcbn n@nb @#$%^&*()";
alert(dirtyString.replace(/[^a-zA-Z ]/g,""));

答案 2 :(得分:1)

试试这个,

var str="agsah gfdhgfh fgdhfd";

alert(str.replace(/\s/g,''));

\s代表空格和标签

g用于全局匹配以删除所有匹配项

如果要从基本拉丁字母中删除任何不是单词字符的字符。然后,您可以使用\W代替\s

var str="agsah gfdhgfh fgdhfd";

alert(str.replace(/\W/g,''));

有关正则表达式的更多信息,请访问here