網站搜尋

Javascript 正則表達式 - 使用白名單清理字串

我有一個非常基本的正則表達式問題。我正在嘗試使用白名單清理輸入欄位。我只想允許數字和小數點進入我的欄位。如果用戶輸入了無效字符,我希望將其從輸入中移除,並用乾淨的字串替換輸入。

我可以讓它只用數字運作,但我無法將小數點加入允許的字元池中:

var sanitize = function(inputValue) { var clean = "", numbersOnly = /[^0-9]/g; // only numbers & a decimal place if (inputValue) { if (numbersOnly.tes

閱讀更多 →

javascript - RegExp 在讀取的 HTML 文件上無法工作

首先,我知道大多數正則表達式問題都是怎麼樣的;而這不是那種「請幫我寫程式碼」的問題。

我感到困惑的地方在於,我的 RegExp 在 regexr 上有效,在 Chrome 的開發者工具中輪詢 document.body.textContent 時也有效,但在我用 io.js 讀取 HTML 文件後卻無效。

io.js 是版本 1.5.1,運行於 Windows 8

為什麼它在列出的兩個地方都可以運作,但在 io.js 中卻不行?難道我沒有考慮到 io.js 在讀取文件時會做的某些事情嗎?

我的 RegExp 應該像下面的連結那樣匹配 "

閱讀更多 →

如何在 JavaScript 中進行「原始」字串搜尋與取代,不使用正則表達式

我如何在 JavaScript 中執行正確的字串搜尋與取代,而完全不使用正則表達式?

我知道文件上說,如果 String.prototype.replace() 的第一個參數是字串,而不是正則表達式的話,它將會進行字面上的替換。但實際操作顯示,這並不完全正確:

"I am a string".replace('am', 'are') --> "I are a string"

好

"I am a string".replace('am'

閱讀更多 →

javascript - 如何以程式方式處理英文縮寫詞 [Regex, JS, Ruby]

我正在捕捉自然語言使用者輸入,我需要將其與預先定義的「正確」版本進行比對。這部分很簡單,但我不確定該如何處理英文中縮寫的變化。

假設我預期的句子是 我肯定你不知道自己在做什麼。 配對需要完全一致,但我不想讓使用者被限制只能使用一種變化,因為那樣會很快讓人感到挫折。

那麼,我是否應該手動輸入該句子的每一種可能變化作為有效匹配呢?像這樣:

"I'm positive you don't know what you're doing." "I am positive you d

閱讀更多 →

javascript - 我們可以使用正則表達式一次解決多個規則嗎?

我需要阻止一些使用者輸入互動,而我腦中立刻想到的是regex。

我會先盡力寫下我需要完成的事情,然後我會發布我寫的用來完成這些大部分工作的程式碼,但仍然不完美…

  • 拿那條繩子
  • 不要允許它以 空格 開始輸入
  • 不要連續允許多個 空格
  • 不要允許多個 dots 連續出現
  • 不要允許多個撇號
  • 允許以下字元 [a-z] '.
  • 不要允許字串超過 14 個字元

現在,這是我的程式碼:

this.name = this.name .replace(/^[\s]+/, '') // prevent starting with space .replace(/\s\s+/, ' ') // prevent mult

閱讀更多 →

JavaScript 中用於檔案路徑驗證的正則表達式

我似乎找不到能測試以下情況的 JavaScript 正則表達式:

  • c:\temp
  • D:\directoryname\testing\
  • \john-desktop\tempdir\

你可以看出我的意思。我只是需要它來驗證一個檔案路徑。但看起來我找到的所有表達式都不適用於 JavaScript。

答案#1

這是 Windows 路徑驗證,它對所有 Windows 路徑規則都能正常運作。

var contPathWin = document.editConf.

閱讀更多 →

javascript - 是較建議在 RegExp 物件上使用方法還是在 String 物件上使用方法?

在 Javascript 中,RegExp 物件和 String 物件上都有正則表達式匹配的方法。

RegExp 物件有這些方法

  • 執行
  • 測試

String 物件有這些方法

  • 比賽
  • 搜索

exec 和 match 方法非常相似:

/word/.e

閱讀更多 →

javascript - 用於真實世界 URL 的正則表達式驗證

我想驗證給定的字串是否為網址。在文字中匹配網址也不錯,但不是必需的。我已經搜尋並嘗試過,但到目前為止還沒找到符合這些需求的東西:

  1. 不得接受那些在被視為連結時會構成安全風險的字串。例如,<a href="javascript:alert(document.cookie)">clickme</a> 是一個有效的 HTML 元素,並且確實在至少某些瀏覽器中會運作(例如彈出警示等)。我擔心如果允許任意的協議(見下文),可能會危及安全(例如,如此處所述:What is the best regular expression to check if a string is

    閱讀更多 →

JavaScript 中的正則表達式 - 匹配像 "ABC12" 的字串

如何在 JavaScript 中使用正則表達式匹配以下字串?

  1. 共有5個字符
  2. 前三個字符是大寫字母
  3. 最後兩個字符僅為數字

我得到了這個模式,[A-Z]{3}[0-9]{2},但似乎仍然缺少了一些東西。

答案#1

你還需要錨點:

var regexp = /^[A-Z]{3}[0-9]{2}$/

否則,子字串也會匹配(例如 ABC12 在 xyzABC1234

閱讀更多 →

Javascript:字串從字串末端開始的正則表達式搜尋

有沒有一個 JavaScript 字串函式可以搜尋正則表達式,並且從字串的末尾開始搜尋?

如果不是,從末尾開始搜尋正則表達式索引的最快和/或最乾淨的方法是什麼?

正則表達式範例:

/<\/?([a-z][a-z0-9]*)\b[^>]*>?/gi

答案#1

也許這會更有用也更簡單:

str.lastIndexOf(str.match(<you

閱讀更多 →