未删除逗号Javascript正则表达式
我试图从字符串中删除所有非字母数字字符,然后继续计算从pdf中提取的每行的字数未删除逗号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”]看起来如下所示: 敏捷的棕色狐狸跳过懒惰的狐狸 某些输出也如下所示:
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您是对的!