按首字母对齐文本
Align text by first letter
我需要检测输入文本的第一个字母,并根据该字母对齐文本。
我需要找到第一个字母(第一个字母表示英语、希伯来语、阿拉伯语等的字符)
:
"a"
这个应该向左对齐。(首字母字母的,不是 " )
"א
这个应该向右对齐(因为有希伯来字母)。
…שלום嗨
应该向右对齐。
我发现了这些文件:
http://jsfiddle.net/BlackSRC/qHLXX/$('input, textarea').keyup(function() {
$(this).val().charAt(0).charCodeAt(0) < 200 ?
$(this).css('direction','ltr') : $(this).css('direction','rtl');
});
http://jsfiddle.net/BlackSRC/qHLXX/1/<input type="text" dir="auto"><br>
第一个jsfiddle可以工作,但它检查字符串的第一个字符而不是第一个字母,所以" 向左对齐。
第二个jsfiddle不能在ie浏览器中工作(像其他所有东西一样)。
感谢任何帮助!
您可以检查每个字符并返回true,如果是希伯来字母字符
$('input, textarea').keyup(function () {
if (!hebrewchar($(this).val())) {
$(this).css('direction', 'ltr')
} else {
$(this).css('direction', 'rtl');
}
});
function hebrewchar(stringaValue){
var HebrewChars = new RegExp("^['u0590-'u05FF]+$");
for(var i=0;i<stringaValue.length;i++){
if (HebrewChars.test(stringaValue[i])) {
return true;
}
}
return false;
}
http://jsfiddle.net/qHLXX/23/您可以使用正则表达式删除所有非字母,然后逻辑将应用于剩余的第一个字符:
$('input, textarea').keyup(function() {
var value= $(this).val().replace(/[^a-zA-Z'-'u0590-'u06FF]/g,'').substr(0,1);
value.charAt(0).charCodeAt(0) < 200 ? $(this).css('direction','ltr') : $(this).css('direction','rtl');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text"><br>
<textarea></textarea>
相关文章:
- D3动态垂直对齐文本
- 计算圆心以在中间对齐文本
- 对齐文本插件引导程序html
- 100%高度输入字段,并垂直对齐文本
- CSS / Javascript微调器对齐文本中间
- 使用javascript/jquery居中左对齐文本
- 对齐文本与按钮在可折叠集jquery移动
- 垂直对齐文本与短长文本按钮
- 在javascript中右对齐文本
- Javascript动态创建span并垂直对齐文本:文本留在底部
- 使用Raphael's库绘制左对齐文本
- 围绕中心字对齐文本
- 在HTML 5画布的每一边对齐文本
- 用滑块对齐文本
- 使用向左拉/向右拉时引导程序未正确对齐文本
- 按首字母对齐文本
- 使用css水平对齐文本和框
- 如何在标签底部对齐文本
- 如何在jQuery对话框中的两个按钮之间垂直居中对齐文本
- 如何使用execCommand对齐文本