Comments (4)
I agree this should be a different rule, since you might not want unicode characters on, say, a username.
I came up with this, which supports unicode letters (see http://php.net/manual/en/regexp.reference.unicode.php , http://stackoverflow.com/questions/8013897/accept-international-name-characters-in-regex).
It does support the characters - and ' -- for example: "O'Malley" or "Kennedy-Warburton"
Maybe we could remove those characters and add them optionally as a rule parameter, as this is more useful as a 'name' rule than alnum and alpha.
require 'lib/Valitron/Validator.php';
use Valitron\Validator as Validator;
Valitron\Validator::addRule('alnum_unicode', function($field, $value, array $params) {
return preg_match("/^[\s-'0-9\pL]+$/u",$value);;
}, 'is not unicode alphanumeric.');
Valitron\Validator::addRule('alpha_unicode', function($field, $value, array $params) {
return preg_match("/^[\s-'\pL]+$/u",$value);;
}, 'is not unicode alpha.');
$arr = [
"test_japanese" => "日本語",
"test_russian" => "Россия",
"test_spanish" => "España",
"test_emoji" => "😅",
"test_jp_alnum" => "日本語10"
];
$v = new Validator($arr);
$v->rule('alnum_unicode',array('test_japanese','test_russian','test_spanish','test_emoji','test_jp_alnum'));
$v->rule('alpha_unicode',array('test_japanese','test_russian','test_spanish','test_emoji','test_jp_alnum'));
$v->validate();
var_dump($v->errors());
which prints the following
array(2) {
["test_emoji"]=>
array(2) {
[0]=>
string(39) "Test Emoji is not unicode alphanumeric."
[1]=>
string(32) "Test Emoji is not unicode alpha."
}
["test_jp_alnum"]=>
array(1) {
[0]=>
string(35) "Test Jp Alnum is not unicode alpha."
}
}
from valitron.
áéíñ
This characters is not alphabetical (in english). It isn't bug.
You can add a rule to check this.
from valitron.
Thanks for reporting this. First, I would say that there is a spanish translation you can use to get spanish error messages (lang/es.php
). Second, I would say that this is an interesting issue, because in spanish, those are certainly valid characters, and ones that I would want Valitron to support. I am also thinking that even for english input, someone could easily have an accent mark in their name, and I wouldn't want that to fail validation. Any thoughts on the best way forward here? I want to support this, but at the same time, we may need a new rule type like alpha_intl
or something for international characters.
from valitron.
Same problem here for greek characters. Although @moustacheful gave a nice temporary fix, that I also use for now. Any planned update?
Another problem is that php counts 2 bytes for every greek or non-latin character, so e.g 'lengthMin', 2
validates to true
for the string "λ". It seems to work right when I use mb_internal_encoding("UTF-8");
, but I don't know if that's the proper solution. Please help, thanks.
from valitron.
Related Issues (20)
- PHP8? HOT 3
- requiredWith and "value" HOT 1
- Incorrect zh-cn translate HOT 1
- Wrong assoc array detection HOT 14
- Boolean for empty fields usage HOT 1
- ValidateTest::testNotInInvalidAltSyntax has no assertions HOT 1
- Travis CI isn't running
- validateAlphaNum not correct in my opinion
- bccomp(): bcmath function argument is not well-formed HOT 1
- "required" not working with "dateFormat"
- array_flip error on PHP 7.4 HOT 2
- nested array validation passes when it shouldn't
- Langues Bug Fixed HOT 4
- Error in lengthBetween and lengthMin rule
- PHP 8.1 Support HOT 1
- Problem with integer validator
- File upload validation
- translation errors HOT 1
- Do you need help ? HOT 2
- Required validator does not work with file uploads HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from valitron.