Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未删除逗号Javascript正则表达式_Javascript_Regex - Fatal编程技术网

未删除逗号Javascript正则表达式

未删除逗号Javascript正则表达式,javascript,regex,Javascript,Regex,我试图从字符串中删除所有非字母数字字符,然后继续计算从pdf中提取的每行的字数 var m = item["str"].replace(/[^a-zA-Z0-9 ]/g," ").trim().split(" "); console.log("count: " + m.length + " words: " + m); 这是代码。结果输出的示例如下: 计数:10个单词:快速,棕色,狐狸,跳跃,越过,懒惰 而项目[“str”]看起来如下所示: 敏捷的棕色狐狸跳过懒惰的狐狸 某些输出也如下所示:

我试图从字符串中删除所有非字母数字字符,然后继续计算从pdf中提取的每行的字数

var m = item["str"].replace(/[^a-zA-Z0-9 ]/g," ").trim().split(" ");
console.log("count: " + m.length + " words: " + m);
这是代码。结果输出的示例如下:

计数:10个单词:快速,棕色,狐狸,跳跃,越过,懒惰

而项目[“str”]看起来如下所示:

敏捷的棕色狐狸跳过懒惰的狐狸

某些输出也如下所示:

计数:1字:


有人能帮我理解这里发生了什么吗?提前感谢

差不多完成了。只需做一件事,使用方法删除数组中的空参数

var m=“快速棕色狐狸-跳过懒惰”。替换(/[^a-zA-Z0-9]/g,”).trim().split(“”)。过滤器(a=>(a));

console.log(“计数:+m.length+”字:+m.join(“,”))问题在于正则表达式匹配单个字符并用空格替换。这将导致最后一个字符串中的行中出现多个空格

让我们使用您的示例:

The Quick Brown Fox - Jumps Over The Lazy
变成

The Quick Brown Fox   Jumps Over The Lazy
用空格分割将产生几个空字符串


您应该在一行中的多个空格上拆分以删除它们:
split(/\s+/)

函数runReplace(str){
var m=str.replace(/[^a-zA-Z0-9]/g,“”).trim().split(/\s+/);
文件。写(str+“
”); 文件。书写(“计数:+m.length+”字:+m+“
”); } runReplace(“敏捷的棕色狐狸-跳过懒惰的狐狸”)
var项={
str:“敏捷的棕色狐狸-跳过懒惰的”
};
var output=item['str'].trim().replace(/\W/g',).replace(/\s+/g',).split(/\s/);
console.log('length',output.length);

console.log('output',output)
/[^a-zA-Z0-9]+/g
不起作用,并且
拆分(“\s+”
无效语法。我会使用
.replace(/\s+/g)”
而不是
。replace(/\s{2}/g')
。您的代码在双空格中不能正常工作。@Cerbrus您是对的!