這個簡單的正則表達式困擾着我。你能幫忙嗎?如何從字符串中去除所有非字母,並在JavaScript中將空格轉換爲破折號?
我怎樣才能讓Foo's Bar
在javascript中返回foos-bar
?
var str = "Foo's Bar";
str.replace(/\s+/g, '-').replace('/[^a-zA-Z-]/g', '').toLowerCase();
return str;
我能做的最好的是foo's-bar
,留下'
。
謝謝。
這個簡單的正則表達式困擾着我。你能幫忙嗎?如何從字符串中去除所有非字母,並在JavaScript中將空格轉換爲破折號?
我怎樣才能讓Foo's Bar
在javascript中返回foos-bar
?
var str = "Foo's Bar";
str.replace(/\s+/g, '-').replace('/[^a-zA-Z-]/g', '').toLowerCase();
return str;
我能做的最好的是foo's-bar
,留下'
。
謝謝。
Esailija是現貨 - 你的正則表達式是正確的,但第二個被解釋爲一個字符串,因爲它用引號包裹。與固定的,你的代碼完美的作品:
str.replace(/\s+/g, '-').replace(/[^a-zA-Z-]/g, '').toLowerCase();
你可以試着顛倒順序和一般避免單詞和空格字符
str.replace(/[^\w\s]+/g,'').replace(/\s+/g,"-").toLowerCase()
有在你的代碼的兩個問題:
replace
)str
str = str.replace(/\s+/g, '-').replace(/[^a-zA-Z-]/g, '').toLowerCase();
應該是'/ [^ A-ZA-Z - ]/g',而不是''/ [^ A-ZA-Z - ]/g'' – Esailija
衛生署!那很容易。謝謝。提交一個答案,它會爲你賺5點。 ;) – Ryan
與[RegEx](http://www.w3schools.com/jsref/jsref_obj_regexp.asp) – SpYk3HH