[英]Javascript : replace reg exp
我想更換不屬於字母的所有符號-
但我的代碼無法正常工作:
$reg = '/[^a-zA-Z]+/g';
$txt = $txt.replace($reg, '-');
我究竟做錯了什么?
JavaScript中的正則表達式不是字符串。
reg = /[^a-z]+/gi;
txt = txt.replace(reg, '-');
您不需要在它們周圍放置引號。
您需要取消對正則表達式字符串的引用,以便將其視為正則表達式文字,這樣就可以得到:
$reg = /[^a-zA-Z]+/g;
$txt = $txt.replace($reg, '-');
除非使用new Regexp()
表示法,否則JavaScript中的正則表達式不需要用字符串引用。 在上面的示例中,它現在是一個正則表達式文字 ,它不再被當作字符串,而是要在.replace()
使用的一個正則表達式。
不要在正則表達式上使用引號。 沒有引號,它們是RegEx對象。 帶引號的只是字符串。
采用,
$reg = /[^a-zA-Z]+/g;
刪除正則表達式周圍的引號。
如果您打算將一個行中的多個非字母字符替換為一個連字符,則您的正則表達式將起作用。 如果要用多個連字符替換多個非字母字符,則還應刪除+
號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.