[英]Validate input with regular expression for universal alphabets in javascript
[英]JavaScript regular expression to validate input such as 2.4**6-0
我正在嘗試驗證輸入行。 它應該是一個或多個整數。 整數可以用一個句號或一個或多個星號分隔。 0無效,但-0是有效的。 句號在行尾無效,但一個或多個星號有效。 因此,“ 2.4 * -2.-0 **”有效。
我嘗試使用:
/^(?:(?:-0)|(?:-?[1-9]\d*)\.|\*+)*(?:(?:-0)|(?:-?[1-9]\d*))\**$/.test(myline)
但這會拒絕包含句號和星號的輸入。
隨后,我確實使用以下命令成功解析了字符串的所有組件:
var regEx = new RegExp("((?:-0)|(?:-?[1-9]\\d*))(\\.|\\*+|$)", "g"), result;
while((result = regEx.exec(myline)) !== null)
我可以將while循環的每個遍次連接result[0]
和result[1]
的值,最后將其與原始字符串進行比較。 我只是希望一開始就進行一次測試,然后再進入具有所有邏輯的循環。
答案可能是測試無效的東西,而不是完全有效的字符串,例如:
if (/(?:[^-.*0-9])|(?:^[.*0])|(?:\d-)|(?:\.[.*])|(?:\*\.)|(?:[.*]-?0\d)|(?:[-.]$)|(?:-00)|(?:-[^0-9])|(?:[.*]0)|^$/.test(mydata))
我已經通過它運行了一套全面的測試用例,但沒有發現任何問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.