我有以下的onkeyup命令來測試,並刪除,信件逗號和美元符號:正則表達式 - 刪除美元符號從文本輸入
onkeyup="if (/(?:[a-zA-Z]|\s|,|\$)+/ig.test(this.value)) this.value = this.value.replace(/(?:[a-zA-Z]|\s|,|\$)+/ig,'')"
它適用於一切,除了對美元的跡象。
有人可以幫我嗎?
感謝, 惟妙惟肖
我有以下的onkeyup命令來測試,並刪除,信件逗號和美元符號:正則表達式 - 刪除美元符號從文本輸入
onkeyup="if (/(?:[a-zA-Z]|\s|,|\$)+/ig.test(this.value)) this.value = this.value.replace(/(?:[a-zA-Z]|\s|,|\$)+/ig,'')"
它適用於一切,除了對美元的跡象。
有人可以幫我嗎?
感謝, 惟妙惟肖
HTML解釋你的反斜線作爲逃避的內嵌HTML字符串,而不是正則表達式。以下代碼打印$
。
<body onload='alert("\$");'> // prints '$', not '\$'
您需要轉義兩次,或將正則表達式移出內聯html並轉換爲函數。
我認爲正確的答案是\\$
取代\$
,如下:
onkeyup="if (/(?:[a-zA-Z]|\s|,|\\$)+/ig.test(this.value)) this.value = this.value.replace(/(?:[a-zA-Z]|\s|,|\$)+/ig,'')"
您的字符串被轉義,但正則表達式不是。請參閱編輯。 –
如果您正試圖清理將任意字符串只是一個數字,你會被替換一切追逐較少的邊緣情況這不是一個數字(假設你想要一個整數)和空字符串。
this.value = this.value.replace(/[^0-9]/, '');
這實際上似乎對我來說是正確的,但正則表達式可以更簡單:'/ [a-z \ s,$]/ig',除非我誤解了你。 http://jsfiddle.net/skM5N/3/ –
適用於我......嘗試將'this.value'傾銷至控制檯並查看內容。 –
只需在沒有測試的情況下運行替換就可以降低成本。 –