Javascript 匹配字符串中的单词并使其小写
我有一个示例字符串:Javascript 匹配字符串中的单词并使其小写,javascript,regex,match,lowercase,Javascript,Regex,Match,Lowercase,我有一个示例字符串: var string = 'This is a süPer NICE Sentence, am I right?'; 结果必须是: this, is, süper, nice, sentence 要求: 最多5个字 至少包含2个字符的单词 逗号分隔 处理特殊字符,如ü这是当前未发生的情况 全部小写目前未发生这种情况 这是我当前的脚本:(您可以在中进行测试) 在连接之前,将匹配的单词转换为小写的最佳方法是什么?只需从开始处将字符串小写即可 string.toLowerCa
var string = 'This is a süPer NICE Sentence, am I right?';
结果必须是:
this, is, süper, nice, sentence
要求:
在
连接之前,将匹配的单词转换为小写的最佳方法是什么?只需从开始处将字符串小写即可
string.toLowerCase().replace(...
或者,您可以使用array#map将单词数组映射到小写字符串
console.log(words.map(函数(word){return word.toLowerCase();}).join(',')代码>答案肯定是toLowerCase()
,但我认为最好在末尾而不是开头运行它(操作的项目较少):
就我所知,toLowerCase()是unicode友好的。你的正则表达式正在剥离任何东西,而不是a-z,a-z
Asker发现此链接有助于解决正则表达式问题:只需使用.toLowerCase()
特殊字符被正则表达式过滤掉了——如果您知道单词之间用空格分隔,只需使用string.split(“”) 您可以使用字符串的toLowerCase
方法,首先将字符串转换为小写,然后对字符串执行所有需要执行的操作
例如:var string='这是一个非常好的句子,我说得对吗?'代码>toLowerCase()方法的问题在于它删除了特殊字符,例如:Ü@andufo“abvcÜ”。toLowerCase()===“abvcü”。奇怪。。。我刚刚在测试了这个例子,然后移除了ü。那将是你的reg exp移除了ü而不是toLowerCase()对不起,我添加了一个特殊的考虑。toLowerCase()正在删除特殊字符(ü)。。。我更新了示例。刚刚注意到replace(/[^a-zA-Z\s]/g,function(str){return';})
正在删除字符。我如何看待正则表达式中的u字符?ToWORCasee()删除特殊字符(u)…我更新了这个例子,也考虑了。“ANDUFO <代码> Word=String。替换(/[^ aZ-z’s/g,函数(STR){返回”;});<代码>是删除那些字符。正则表达式如何也可以考虑特殊字符?“安德福”,我对正则表达式不是很好,也许:这可能也要排除数字。不太确定,太棒了。很高兴我能帮忙。
string.toLowerCase().replace(...
if(words != null) {
//5 words maximum
words = words.slice(0,5);
if(words.length) {
console.log(words.join(', ').toLowerCase()); //here
}
}
var string = 'This is a süPer NICE Sentence, am I right?';
string = string.toLowerCase();
var words = string.split(' ');
//5 words maximum
words = words.slice(0,5);
console.log(words.join(', ')); //should print: this, is, super, nice, sentence