2016-07-18 35 views
0

我有這樣的驗證檢查:檢查值爲NaN,但允許使用特殊字符

if (isNaN($scope.QuickQuoteData.RequestedAmount)) { 
    $scope.ShowValidation = true; 
    $scope.errors.push('Requested amount has invalid value.'); 
} 

但我想允許的,例如,如果用戶將在此格式輸入值:

€ 1500000 
€ 1.500.000 
1.500.000 

然後我需要允許操作繼續而不是拋出驗證錯誤。

所以除上述格式的輸入值外,其他格式都是無效的。

任何想法如何調整?

感謝,Laziale

+3

使用正則表達式。如果您搜索,有很多用於驗證貨幣字符串。 –

+0

我認爲國際(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl)對象有一些支持根據不同的區域設置來解析數字輸入。 – Anthony

+0

嗨,你可以看看這裏,但考慮到在他們使用美元符號的鏈接的例子中,他們使用逗號和點相反的方式相比你的例子(我想你想逗號爲小數點和千位/百萬點等等)... http://stackoverflow.com/questions/16242449/regex-currency-validation – mastazi

回答

1

你可以用下面的方法

if (!("Any Number with special chars".test(/^[a-zA-Z]+$/))) { ... } 

檢查這檢查提供的號碼有字符串或不 不會檢查特殊字符...

0

由於我低估你的要求,你可以做這樣的事情。

var specialChars=[".", "$", "€"]; //Add your symbols whatever you need. 

function validate(val){ 
    for(var i=0;i<val.length;i++){ 
    if(specialChars.indexOf(val[i]) >= 0) { 
     continue; 
    } 
    if(isNaN(val[i])) { 
     return false; 
    } 
    } 
    return true; 
} 
+0

是的,但如果用戶將輸入€asodkao作爲輸入值呢? – Laziale

+0

你需要在'key events'上調用'validate()'函數。它將按預期工作。 –

+0

@拉齊亞萊回答編輯,檢查一次。現在你可以傳遞整個值而不是一個'char' –

相關問題