fir*_*boy 8 javascript php regex
嗨我想在spry java脚本框架中使用下面的php正则表达式,但它们不适用于spry框架和spry不让用户输入!
1)"/^[\d]+$/"
2)"/^([\x{600}-\x{6FF}]+\s)*[\x{600}-\x{6FF}]+$/u"
3)"/^([\x{600}-\x{6FF}]+\d*\s)*[\x{600}-\x{6FF}]+\d*$/u"
请帮我转换它们在spry框架中使用.
1) /^[\d]+$/
2) /^([\u0600-\u06FF]+\s)*[\u0600-\u06FF]+$/
3) /^([\u0600-\u06FF]+\d*\s)*[\u0600-\u06FF]+\d*$/
Run Code Online (Sandbox Code Playgroud)
/ u不受支持,因为Javascript正则表达式仅在代码点方面支持unicode.\ x {???}(unicode codepoints)应写成\ u ???? 在Javascript正则表达式(总是4位0填充)
在这些情况下,以下内容适用于正则表达式的其余部分:
这意味着我们必须允许"外来"数字,例如波斯语(代码点06F0-06F9):
1) /^[\d\u06F0-\u06F9]+$/
2) /^([\u0600-\u06FF]+\s)*[\u0600-\u06FF]+$/
3) /^([\u0600-\u06FF]+[\d\u06F0-\u06F9]*\s)*[\u0600-\u06FF]+[\d\u06F0-\u06F9]*$/
Run Code Online (Sandbox Code Playgroud)
(如果不接受ASCII数字,请删除\ d)
不确定括号在示例1中应该做什么,最初它们可以写成:
1) /^\d+$/
Run Code Online (Sandbox Code Playgroud)
但是要添加波斯数字,我们需要它们,见上文.
更新
但是,Spry字符屏蔽只需要在每个输入的字符上应用正则表达式 - 即,我们实际上不能进行模式匹配,它只是所有地方接受字符的"列表" ,在这种情况下:
1 ) /[\u06F0-\u06F9\d]/ // match 0-9 and Persian numerals
2 and 3) /[\u0600-\u06FF\d\s]/ // match all Persian characters (includes numerals), 0-9 and space
Run Code Online (Sandbox Code Playgroud)
如果您不想接受0-9,请再次移除\ d.
更新2
现在......使用正则表达式与Spry 进行验证:
var checkFullName = function(value, options)
{
// Match with the by now well-known regex:
if (value.match(/^([\u0600-\u06FF]+\s)*[\u0600-\u06FF]+$/))
{
return true;
}
return false;
}
var sprytextfield =
new Spry.Widget.ValidationTextField(
"sprytextfield",
"custom",
{ validation: checkFullName, validateOn: ["blur", "change"] }
);
Run Code Online (Sandbox Code Playgroud)
案例3可以采用类似的自定义功能.
请参阅Adobe实验室中的示例
| 归档时间: |
|
| 查看次数: |
2494 次 |
| 最近记录: |