Jon*_*ero 9 javascript regex permalinks
我有一个文本框,用户放置一个这样的字符串:
"hello world! I think that __i__ am awesome (yes I am!)"
Run Code Online (Sandbox Code Playgroud)
我需要像这样创建一个正确的URL:
hello-world-i-think-that-i-am-awesome-yes-i-am
Run Code Online (Sandbox Code Playgroud)
如何使用正则表达式完成?
另外,是否可以使用希腊语(例如)?
"???? ??? ?????"
Run Code Online (Sandbox Code Playgroud)
转向
geia-sou-kosme
Run Code Online (Sandbox Code Playgroud)
npu*_*pup 14
试试这个:
function doDashes(str) {
var re = /[^a-z0-9]+/gi; // global and case insensitive matching of non-char/non-numeric
var re2 = /^-*|-*$/g; // get rid of any leading/trailing dashes
str = str.replace(re, '-'); // perform the 1st regexp
return str.replace(re2, '').toLowerCase(); // ..aaand the second + return lowercased result
}
console.log(doDashes("hello world! I think that __i__ am awesome (yes I am!)"));
// => hello-world-I-think-that-i-am-awesome-yes-I-am
Run Code Online (Sandbox Code Playgroud)
至于希腊字符,是的,我想不出别的东西,而不是另一个正则表达式使用的某种查找表.
编辑,这里是oneliner版本:
编辑,添加到LowCase ():
编辑,令人尴尬的修复尾随正则表达式:
function doDashes2(str) {
return str.replace(/[^a-z0-9]+/gi, '-').replace(/^-*|-*$/g, '').toLowerCase();
}
Run Code Online (Sandbox Code Playgroud)